我在想如何正確使用addEventListener
分別是attachEvent
?正確使用addEventListener()/ attachEvent()?
window.onload = function (myFunc1) { /* do something */ }
function myFunc2() { /* do something */ }
if (window.addEventListener) {
window.addEventListener('load', myFunc2, false);
} else if (window.attachEvent) {
window.attachEvent('onload', myFunc2);
}
// ...
或
function myFunc1() { /* do something */ }
if (window.addEventListener) {
window.addEventListener('load', myFunc1, false);
} else if (window.attachEvent) {
window.attachEvent('onload', myFunc1);
}
function myFunc2() { /* do something */ }
if (window.addEventListener) {
window.addEventListener('load', myFunc2, false);
} else if (window.attachEvent) {
window.attachEvent('onload', myFunc2);
}
// ...
?
這是跨瀏覽器的安全或者我應該更好地與像這樣去:
function myFunc1(){ /* do something */ }
function myFunc2(){ /* do something */ }
// ...
function addOnloadEvent(fnc){
if (typeof window.addEventListener != "undefined")
window.addEventListener("load", fnc, false);
else if (typeof window.attachEvent != "undefined") {
window.attachEvent("onload", fnc);
}
else {
if (window.onload != null) {
var oldOnload = window.onload;
window.onload = function (e) {
oldOnload(e);
window[fnc]();
};
}
else
window.onload = fnc;
}
}
addOnloadEvent(myFunc1);
addOnloadEvent(myFunc2);
// ...
和:說myfunc2
是IE 7只。如何相應地修改正確/首選的方法?
你可能不喜歡我這樣說,但你爲什麼不用一個框架來處理這些問題呢? – Pointy 2010-04-17 04:18:59
我會,但我不能在這種情況下。所以,你能幫我解決這個問題嗎? – ginny 2010-04-17 04:30:09
@ginny看看我的答案。如果您需要進一步的解釋,請告訴我。 – hitautodestruct 2012-11-25 13:39:14