我在互联网资源管理器中有一个令人讨厌的问题。
我有一个用于输入文字的文本区域。此textarea对用户不可见,仅用于为更高级的视图提供强大的文本输入。
由于textarea不可见,不应该在javascript中使用textarea.focus()来激活文本输入。到目前为止,我的工作效果还不错。
对于textinput,我基本上使用此事件加上onkeypress的精确副本。
textarea.onkeyup = function (e) {
//textarea.value contains the full text
//Update the view with this value
};
问题是有时textarea.value不会更新。我甚至可以在上面的keyup事件中看到e.keyCode中的按钮但是值没有改变。 这似乎发生在我点击页面上的某个地方,但这不会触发模糊事件。我正在记录onfocus-和onblur事件,所以我可以看到textarea失去焦点,但它没有。我仍然收到关键/按下/关闭事件。
如果我尝试使用textarea.focus()重新聚焦textarea,问题仍然存在。我找到的解决方法是使用window.focus()和调用textarea.focus()之后立即聚焦窗口。 这个问题是焦点是IE中一个非常昂贵的操作(没有开玩笑),因为我无法检测何时会发生这个问题,我必须继续以一定的间隔进行,这会严重影响我的应用程序的性能(涉及动画等)
我对其他浏览器使用完全相同的代码,并且没有这个问题。
答案 0 :(得分:0)
将标识符更改为不像“textAreaAdv”那样的通用标识符,IE有时会对此单词感到困惑。