IE6-IE9兼容性問題列表及解決辦法_補充之五:在IE9下, disabled的文本框內容被選中后,其他控件無法獲得焦點問題


先看一段Htm代碼,里面一個disabled的文本框,一個普通可寫的文本框,還有一個按鈕,非常簡單,代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
  Disabled Input: <input type="text" id="b1" value="asldfjasldfa" disabled="disabled" ></input><br />
  Non-Disabled Input: <input type="text" id="b2" value="asldfjasldfa"></input>
  <input type="button" id="butt1" name="butt" value="關閉" onclick="window.close()" />
</body>
</html>

運行出來的頁面如下:


通過實際測試發現,在IE9下,鼠標一旦進入disabled的文本框,比如在里面拖拽鼠標並選中一些內容,然后再想把鼠標挪開,比如挪到第二個文本框中,或者比如點擊以下關閉按鈕,就會發現,辦不到了,似乎disabled文本框的焦點永遠無法離開了,其他文本框或者按鈕永遠獲得不到焦點,除非用Tab鍵切換,或者干脆切換到其他軟件界面后再轉回來,這時別的控件才可以被點中。

 

經過測試,在IE6, 7, 8, 10上都無此問題。 

 

經過咨詢獲悉,發現這確實是IE9的一個bug。

 

如何解決呢?下面是我們摸索出來的幾個方法,拋磚引玉一下:

1.升級到IE10。

升級到IE10,自然就解決了這個問題。因為既然IE10既然已經解決這個問題了,那么IE9就應該不會再為這個bug專門發布補丁修復程序了。


2.鼠標雙擊一下頁面其他部分,就可以把焦點從disabled文本框中解脫出來了。


3.寫腳本禁止disabled文本框被選擇也是一個方法,但前提是文本框既然已經disabled了,就不接受任何js事件了,那么,只能在其父元素上搞這個動作了,比如在disabled文本框外再套個東東,在那上面綁定js事件,禁止此區域被鼠標進入或選擇,這樣,相應的,其內部的disabled文本框也就不能被選擇了,那么,這個文本框焦點無法離開的問題也就不存在了。

 
不知道諸位是否遇到過這個問題,是否有更好的解決方法? 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM