0

我总是得到最后一个 onload 函数,但我需要两者,是否有任何其他替代选项而不删除任何 window.onload 事件?

window.onload = function(){
    alert("first");
}

window.onload = function(){
    alert("second");
}
4

3 回答 3

3

声明第二个时,可以与第一个链接。

var lastOnLoad = window.onload;
window.onload = function(){
    lastOnLoad();
    alert("second");
}

您还可以制作这样的实用程序:

function addOnLoad(f) {
    var lastOnLoad = window.onload;
    window.onload = function() {
        lastOnLoad();
        f();
    }
}

你会这样称呼它:

addOnLoad(function(){
    alert("first");
});

addOnLoad(function(){
    alert("second");
});

编辑:或者你可以简单地按照 ThiefMaster 的建议去做......(我会支持他!)。

于 2012-09-20T13:22:19.277 回答
3

最好的解决方案是注册事件侦听器,addEventListener而不是将其分配给window.onload

window.addEventListener('load', function(event) {
    // your code
}, false);

您可以多次执行此操作,它永远不会覆盖以前的侦听器。

于 2012-09-20T13:23:27.210 回答
1

试试这个:

window.addEventListener('load', function() {
    alert("first");
}, false)

window.addEventListener('load', function() {
    alert("second");
}, false)
于 2012-09-20T13:26:40.733 回答