這幾天遇到兩個在IE8下focus失效的很是奇怪的問題,固然這個是指JS函數: document.getElementById("id").focus(); 或者 $("#id").focus();dom
問題一: 樓主的頁面是在ifram中,點擊ifram中的保存按鈕後,會重定向到這個頁面,而且在domcument.ready()中會將焦點給予第一個文本框。但奇怪的是,第一次打開這個頁面是沒有問題的,等點擊保存重定向這個頁面後,在IE8低版本(ie8 8.0.7600.16385)中,光標沒法定位到第一個文本框,樓主特地寫了一個函數,在進入焦點時,文本框的背景顏色變成其餘顏色, 結果背景顏色變了,卻無焦點。 最後經過延遲加載莫名其妙的就解決了。 setTimeout("$('#id').focus();",500);函數
問題二: 樓主的頁面依舊在ifram中, 在點擊頁面的某個按鈕後,會彈出一個層, 層中的數據時動態生成的,當彈出層後,第一個文本框得到焦點(全部動態生成的第一個文本框的id都是相同的)。 結果在ie8中又出現問題了。有時能得到焦點,有時又不能得到焦點,着實蛋疼不已。 後來發現經過一下兩點解決了該問題:get
1. 每次隱藏層時,刪除層中的數據: $("#id").empty();io
2.層彈出時使用這個方法 $("#id").show('fast',function(){ast
"$('#txt1').focus();function
});方法
主要緣由多是 IE8解析的有問題, 可能定位到以前一個txt1了,也有可能還沒生成txt1,就先執行focus函數了。致使沒有得到焦點。im
目前樓主在IE 8 中發現各類奇葩問題。着實蛋疼了好久。數據