我試圖在輸入區域實現光標焦點,IE給了我很多頭痛的問題。我已經嘗試沿線(改變超時太多,以大數字)的事情:在IE中防止焦點的小應用程序
setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
它不會工作。我注意到,我在頁面上也有一個小程序,當我刪除小程序時,上述工作。此外,如果我在focus()
觸發器之前放置了警報,它將起作用。
該小程序沒有做任何特別的事情(它實際上檢索用戶的MAC地址),它在一端調用外部JS函數來發送MAC地址給DOM。我試着把焦點(超時和所有)放在那個JS函數的末尾,但那也行不通。
什麼可能是錯的?事情在Firefox中運行良好,只是不在IE中。
當前設置:
//This is called from within the applet using a window.call
function everythingDone()
{
$("#someinput").focus();
//setTimeout(function() { document.getElementById('someInput').focus(); }, 1000);
};
$(function()
{
var applet = "<object classid='clsid:CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA' width='0' height='0'><param name='code' value='someapplet.class' /><param name='archive' value='/someapplet.jar' /></object>";
$("#appletarea").html(applet);
//setTimeout(function() { document.getElementById('someInput').focus(); }, 1000);
});
謝謝!我嘗試了'setFocusable(false)'成功,但是這個效果很好! – Andy 2012-06-28 02:21:46
謝謝你,我花了4個小時試圖找出什麼是偷竊焦點,以及如何防止它。這是解決方案。 – Oversteer 2012-09-03 16:39:29
也爲我工作:IE9 + JRE 6u45 – 2013-05-30 15:35:27