将原始链接内容加载到终端

时间:2018-10-18 03:19:33

标签: jquery-terminal

我正在使用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 });


});

我想知道,如何获得结果,当单击结果链接时,它们将数据加载到终端中的方式与加载命令数据相同,而不是打开新的浏览器选项卡?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用的命令包含URL或URI(例如get https://example.comterminal.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;   
}