我正在升级脚本以使其成为浏览器。我目前的代码如下。
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添加文本之前,该函数用作检查。
答案 0 :(得分:0)
让我觉得您可以使用事件监听器来设置变量。唯一的问题是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'
周围加上引号我已修复上面的代码,以反映在Firefox,Chrome和IE6中经过测试和验证的答案。我没有任何其他IE可以测试。