2010-09-22 94 views
0

我有一個真正討厭的焦點在Internet Explorer中的問題。IE瀏覽器,按下按鈕時textarea的值不會改變

我有一個用於輸入文本的textarea。此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

不是一個答案,但如果你發現你不得不放棄textarea的事情,這個頁面可能有助於瀏覽跨瀏覽器的鍵盤事件的變幻莫測:http://unixpapa.com/js/key.html – 2010-09-22 10:07:53

回答

0

將標識符更改爲不像「textAreaAdv」那樣的通用標識符,IE有時會與此詞混淆。

+0

在我的代碼中,它實際上已被稱爲不同的東西,但感謝您的建議。 – elm 2010-09-22 11:51:28

相關問題