我的页面上嵌入了jQuery.terminal,我可以通过输入命令来发送命令。我在我正在处理的脚本中有很多console.log和console.dir命令,我希望终端也可以输出那些,但它没有。
我在想这可能就像这个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
我看到有一个$。终端对象但是,我没有看到从这个以太网访问回声的方法。我该如何正确地做到这一点,或者更确切地说,开发人员已经设定了这样做的方式,我错过了?我不想弄乱逗号分隔的日志或目录对象。
答案 0 :(得分:0)
插件返回终端实例,因此您应该执行以下操作:
var term = $('#term').terminal(function(command,term) {
...
}, {...});
console.log = function(str){ term.echo(str); };
如果您想访问当前终端,您可以使用:
var term = $.terminal.active();