【问题标题】:How to hook on keypress and grab the current content of the terminal?如何挂钩按键并获取终端的当前内容?
【发布时间】:2014-05-22 21:46:47
【问题描述】:

我在测试页面上成功安装了终端,并希望突出显示匹配的括号,如下所示:
http://profgra.org/lycee/calcul.html
所以我已经有了一个可行的解决方案,现在我需要连接到终端。
我的第一个想法是看看我是否可以使用keypress 选项来获取术语内容:

keypress: function(e) {
   console.log(term.html());
}

但内容总是缺少键入的最后一个字母。 有什么想法可以解决这个问题吗?或者有什么其他方向可以尝试?

感谢阅读。

【问题讨论】:

  • 如果您修改 html,它将在刷新时被删除。如果您只想在命令行中突出显示括号,您可以使用term.get_command() 来获取当前命令,但您将无法为文本设置类,因为我已经从命令行中删除了格式。

标签: javascript jquery jquery-terminal


【解决方案1】:

keypress先执行用户函数然后插入文本,所以你可以尝试延迟动作:

keypress: function(e, term) {
    setTimeout(function() {
        console.log(term.html());
    }, 10);
}

在 setTimeout 中插入,您还可以使用终端文件中包含的 jQuery Timers

【讨论】:

  • 谢谢。它对我很有用,但是在这里使用 jQuery 有什么好处呢?更好的跨浏览器兼容性?
  • @Gra jQuery 计时器比内置的 setTimeout 有更多的功能,但对于这种情况,我看不出为什么不使用 setTimeout 的理由。我只是说终端包含那个插件,就像旁注一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多