IE8 focus 失效解決方案


這幾天遇到兩個在IE8下focus失效的非常奇怪的問題,當然這個是指JS函數: document.getElementById("id").focus(); 或者 $("#id").focus();

問題一: 樓主的頁面是在ifram中,點擊ifram中的保存按鈕后,會重定向到這個頁面,並且在domcument.ready()中會將焦點給予第一個文本框。但奇怪的是,第一次打開這個頁面是沒有問題的,等點擊保存重定向這個頁面后,在IE8低版本(ie8 8.0.7600.16385)中,光標無法定位到第一個文本框,樓主特意寫了一個函數,在進入焦點時,文本框的背景顏色變成其他顏色, 結果背景顏色變了,卻無焦點。 最后通過延遲加載莫名其妙的就解決了。 setTimeout("$('#id').focus();",500);

 

問題二: 樓主的頁面依舊在ifram中, 在點擊頁面的某個按鈕后,會彈出一個層, 層中的數據時動態生成的,當彈出層后,第一個文本框獲得焦點(所有動態生成的第一個文本框的id都是相同的)。 結果在ie8中又出現問題了。有時能獲得焦點,有時又不能獲得焦點,着實蛋疼不已。 后來發現通過一下兩點解決了該問題:

1. 每次隱藏層時,刪除層中的數據: $("#id").empty();

2.層彈出時使用這個方法 $("#id").show('fast',function(){

"$('#txt1').focus();

});

主要原因可能是 IE8解析的有問題, 可能定位到之前一個txt1了,也有可能還沒生成txt1,就先執行focus函數了。導致沒有獲得焦點。

 

目前樓主在IE 8 中發現各種奇葩問題。着實蛋疼了很久。

 


免責聲明!

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



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