2015-02-08 2 views
0

У меня есть jQuery.terminal, встроенный на мою страницу, и я могу отправлять команды, введя его. У меня есть многочисленные команды console.log и console.dir внутри скрипта, над которым я работаю, я бы хотел, чтобы терминал также выводил их, но это не так.Доступ к эхо глобально (JQuery Terminal)

Я думал, что это может быть что-то вроде того, что делали ребята на этом SO-вопросе; Переопределелив console.log:

Embed JS Console within website

Я хотел бы сделать что-то подобное с jQuery.terminal

console.log=function(str){term.echo(str);}; 

Я не могу видеть, как это предполагают, чтобы работать. Поскольку я не могу получить доступ к терминалу через консоль Chromes (я не могу найти часть, которая выполняет эхо).

var log; 

$('#term').terminal(function(command,term){ 
    if(command!==''){ 
     try{ 
      var result=window.eval(command); 
      if(result!==undefined){ 
       term.echo(new String(result)); 
       }} 
     catch(e){ 
      term.error(new String(e)); 
      }} 
    else{ 
     term.echo(''); 
     }},{ 
    welcome:false, 
    height:200, 
    prompt:'> ', 
    onInit:function(term){ 
     log=term;     // now log should reference to term 
     alert('hello');   // I don't see this alert 
     }}); 

console.log('hello');  //only the browsers own console shows this message 

Тогда, если я вручную ввести в консоли Chromes:

log.echo('hi'); // Cannot read property 'echo' of undefined 

Я вижу, есть $ .terminal объект, но я не вижу способ доступа к эхо от этого эфира , Как мне это сделать правильно или вернее, существует ли определенный способ, который разработчики сделали для этого, которого я не вижу? Я не хочу испортить разделенные запятыми журналы или объекты dir.

ответ

0

плагин возврата терминала экземпляр, так что вы должны сделать что-то вроде:

var term = $('#term').terminal(function(command,term) { 
... 
}, {...}); 

console.log = function(str){ term.echo(str); }; 

также, если вы хотите получить доступ к текущей терминал можно использовать:

var term = $.terminal.active(); 
Смежные вопросы