gpt4 book ai didi

Javascript,检测文本框是否有焦点?

转载 作者:行者123 更新时间:2023-12-03 11:17:01 24 4
gpt4 key购买 nike

我正在升级脚本以使其跨浏览器。我目前的代码如下。

function testFocus(){   
var testSelection = document.getElementById('chattext').contentWindow.
window.document.selection.createRange().parentElement();

while (testSelection)
{
if (testSelection.id == "chatContent") {
return true;
}
testSelection = testSelection.parentElement;
}
return false;
}

然而,以下代码在现代浏览器中不再有效。目前上面的代码必须选择文本。它只需要检查文本框是否有焦点。该函数用作按钮/javascript 添加文本之前的检查。

最佳答案

令我印象深刻的是,您可以使用事件监听器来设置变量。唯一的问题是 IE 使用 attachEvent(event, callback) 而不是 addEventListner 所以你实际上必须添加代码

<script type="text/javascript">
var ChatHasFocus = false;
var ts = document.getElementById('chattext');
function setFocus() {ChatHasFocus = true;}
function setNoFocus(){ChatHasFocus = false;}
if (ts.addEventListener != undefined) {
ts.addEventListener('focus', setFocus, false);
ts.addEventListener('blur', setNoFocus, false);
} else if (ts.attachEvent != undefined) {
ts.attachEvent('onfocus', setFocus);
ts.attachEvent('onblur', setNoFocus);
} else {
ts.onmouseover = setFocus;
ts.onmouseout = setNoFocus;
}
</script>

编辑 - 我添加了脚本标签来向您展示它是如何添加到您的文档中的。我已经在 firefox 和 chrome 中测试过,它似乎可以工作,但是将 IE 沙箱放在一起对我来说可能有点困难。我确定我在那里遗漏了一些小东西 - 我会看一看。

edit2 我的 IE 代码有误。原来你没有在 'undefined' 周围加上引号我已经修复了上面的代码以反射(reflect)在 firefox、chrome 和 IE6 中经过测试和 wotkign 的答案。我没有任何其他 IE 可以测试。

关于Javascript,检测文本框是否有焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388616/

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