我正在使用raw属性,将经过格式化的数据从url获取到终端,像这样
$(function() {
var save_state = [];
var terminal = $('#term').terminal(function(command, term) {
term.pause();
url = ...;
$.get(url, function(result) {
term.echo(result, {raw:true}).resume();
});
}, { prompt: '>>', name: 'test', outputLimit: 1000 });
});
我想知道,如何获得结果,当单击结果链接时,它们将数据加载到终端中的方式与加载命令数据相同,而不是打开新的浏览器选项卡?
谢谢!
答案 0 :(得分:1)
如果您使用的命令包含URL或URI(例如get https://example.com
或terminal.on('click', '.terminal-output > div:not(.exception) a', function() {
// if you don't use `true` it will show the command like if you type it
// instead of `get` you can use any command you have that will
// fetch the url and display it on the terminal
terminal.exec('get ' + $(this).attr('href'), true);
return false; // prevent following the link
});
),则可以使用以下命令:
terminal.on('click', '.terminal-output > div:not(.exception) a', function() {
// duplicated code from your interpreter
term.pause();
var url = $(this).attr('href');
$.get(url, function(result) {
term.echo(result, {raw:true}).resume();
});
return false;
});
如果您显示网址的逻辑不同,则可能需要从click事件处理程序内部的解释器中剔除代码。
#include <stdio.h>
#include <stdarg.h>
void test(char *fmt, ...) {
va_list args;
va_start(args, fmt);
printf(fmt, args);
va_end(args);
}
int main(int argc, char** argv) {
test("%u\n", 123);
printf("%u\n", 123);
return 0;
}