gpt4 book ai didi

javascript - Ace-editor focus/blur 方法显然不能与 termlib.js 集成

转载 作者:行者123 更新时间:2023-11-28 01:13:19 26 4
gpt4 key购买 nike

我正在开发一个项目,我需要 ace-editor 与终端仿真器集成;所有问题举例here

当人机交互失败时,问题就消失了:用户在终端和编辑器上移动,直到退出页面。我想将 .focus() 设置为“hoved”元素,将 .blur() 设置为“not hoved”元素。到终端,工作正常,bot ace-editor 无法聚焦。我无法在编辑器上推送一些字符。

显然 jquery 在这里不起作用:

$('#terminal').hover(function(){
TermGlobals.setFocus(true);
}, function(){
TermGlobals.setFocus(false);
})

$('#coffee_editor > textarea').hover(function(){
window.editor.focus();
}, function(){
window.editor.blur();
})

有人清楚为什么它不能正常工作吗?

谢谢你的帮助

已解决!

我记得RTFM

7.2  TermGlobals.keylock (Global Locking Flag)

The global flag `TermGlobals.keylock' allows temporary keyboard locking without any
other change of state. Use this to free the keyboard for any other resources.
(added in v.1.03)

所以我在jsfiddle中添加了以下内容:

$('#terminal').hover(function () {
TermGlobals.keylock = false;
term.focus();
}, function () {
TermGlobals.setFocus(false);
});

$('#coffee_editor').hover(function () {
TermGlobals.keylock = true;
window.editor.focus();
}, function () {
window.editor.blur();
});

奇怪的是jsfiddle无法正常工作,但在 my project 中效果很好。我运行 Rails 服务器,而 jsfiddle 在 <iframe> 内运行;为什么工作上会出现这种差异?

最佳答案

ace 没有任何可见的 textarea 附加监听器到容器元素。

$('#coffee_editor').hover(function(){
window.editor.focus();
}, function(){
window.editor.blur();
})

关于javascript - Ace-editor focus/blur 方法显然不能与 termlib.js 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24167557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com