ie瀏覽器,ie 修復,ie 8,ie tab,ie 7,ie無法開啟,ie 6 0繁體中文版,ie更新,ie 9,ie自動關閉,ie 7繁體中文版,ie無法顯示網頁,ie升級,ie打不開,ie移除,ie工程師,ie 瀏覽器升級,ie中毒,ie版本,ie 8 0繁體中文版,ie附加元件,ie被綁,ie重灌,ie瀏覽器更新,ie加速器,ie當機,ie瀏覽器修復工具,ie錯誤,ie 7.0,ie 8.0
  • Home
五月 11 2010

IE對input元素onchange事件的支持BUG

經測試,最後發現是IE對input元素的onchange事件支持有問題,下面來看代碼:
html head title IE對input列素onchange事件的支持BUG測試/title scripttype="text/javascript"function showTip(){document.getElementById("Tip").style.display="inline";}/script/head body divstyle="width:400px;"inputtype="text"name="txt1"onchange="showTip()"spanid="Tip"style="display:none;"這裡是提示信息,在頁面加載時時是隱藏的/span br這行字用來顯示到頁面上br inputtype="text"name="txt2"/div/body/html運行上面的代碼,在第一個文本框裡隨便輸出些什麼,然後用鼠標點擊第二個文本框,看光標的位置,按下Backspace鍵試試,問題出現!然後重新打開頁面,焦點移到第一個文本框裡,不輸入任何東西然後點擊第二個文本框,問題沒有出現。
按一般理解上的意義來說,onchange應該是在文本框裡內容有變化時發現,就是每輸入一個字符都應該觸發一次,然而結果卻表明IE是在輸入時並沒有觸發,而是在input失去焦點時觸發了onchange事件,"基本等同於"onblur事件,但onblur事件卻沒有這個BUG,說明IE對onchange支持有問題。
上面的代碼現BUG後,光標停留在"這行字用來顯示到頁面上"這一行的後面,這一行的位置在觸發事件前本是第二個文本框所在位置,難道IE只記住了位置?再試一下,把代碼中的div寬度縮小為200px,再試一次,BUG重現,而且由於Tip出來的字折了兩次行,所以光標停留在"這裡是提示信息,在頁面加載時時是隱藏的"這一行的後面,光標所在位置還是剛纔第二個文本框所在的位置,看來,當onchange事件發生時,IE記住了鼠標點擊的位置,而且記住了鼠標點擊的元素將是一個input,而在這之後纔執行了onchange事件指定的操作,很不幸,IE原來記住的位置已經不是原來的input了,但IE卻沒有理會,繼續著它的操作,於是就出現了問題
雖然光標停留在那個位置,可以輸入東西,可以用Backspace刪除,但卻不能夠用方向鍵控制光標的移動,Backspace可以使光標向後移,但除了輸入字符就再沒辦法讓光標向前移。當提示文字折兩行以上時,光標並不是停到整個提示文字的最後面,而是原來文本框所在的那一行,這時候用Backspace刪除時,其實是實現的Del鍵操作,並沒有刪除前面的東西,而是刪除了後面的字符,直到後面不再有字符纔開始刪除前面的元素,在任意位置打一個回車進去,IE6繁體中文,當前位置都會出現一個空行,而這時,光標被移到了每二個文本框裡


  • FireFox與IE中CSS兼容技集錦
  • IE插件大全
  • ie 8.0安裝問題集
  • Chrome瀏覽器取代IE十大原因
  • IE主頁永遠不會被改(圖文詳解)
  • IE9.0即將問世。
  • CSS樣式表在Firefox和IE下的區別
  • 10個技巧幫你搞定IE 6
  • 4種方法解決IE圖標不見
  • IE 6網頁木馬制作
  • IE 6必死(轉)
  • Google Chrome瀏覽器無法取代IE的原因