2012-12-20 72 views
0

我想在頁面加載時執行我的插件代碼的某些部分。所以我正在瀏覽器中尋找頁面加載事件。在ie9中檢測javascript加載事件

if (window.addEventListener) 
    window.addEventListener("load", func, false); 
else if (window.attachEvent) 
    window.attachEvent("onload", func); 

function func() { 
    alert("page loaded"); 
    //my code here 
} 

在Firefox中,我可以捕捉加載事件。但在IE9我無法得到這個。或者,使用jquery電話

$(document).ready(function(){ 
    //my code here 
}); 

我們可以得到這個。

但我需要這個功能,而不使用jQuery。

感謝,

回答

2

這將在IE9執行:

window.onload = func; 

修改代碼:

if (window.addEventListener) { 
    window.addEventListener("load", func, false); 
} else if (window.attachEvent) { 
    window.attachEvent("onload", func); 
} else { 
    window['onload'] = func; 
} 

更一般的事件處理程序的結合會是:

function Subscribe(event, element, func) { 
    if (element.addEventListener) { 
     element.addEventListener(event, func, false); 
    } else if (element.attachEvent) { 
     element.attachEvent("on" + event, func); 
    } else { 
     element['on' + event] = func; 
    } 
} 

Subscribe('load', window, func); 
+0

'$(document).ready()'事件是'DOMContentLoaded',而不是'load'。 –

+0

@FlorianMargaine我意識到這一點,但在問題中的示例代碼中有window.load和$(document).ready混合。我已經回答了window.load,以及一般的訂閱功能。 –

+0

問題不符合條件。它是進入第一條件,如果條件本身,但在此聲明失敗「window.addEventListener(」load「,func,false);」。與第二和第三個條件相同的問題。謝謝, – Mmh

0

ma ybe你可以試試這個

window.onload = function() { 
    // do something here 
};