0

私は常に最後の onload 関数を取得しますが、両方が必要です。window.onload イベントを削除せずに他の代替オプションはありますか?

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

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

3 に答える 3

3

addEventListener最善の解決策は、に割り当てるのではなく、を使用してイベント リスナーを登録することwindow.onloadです。

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

これは複数回実行でき、以前のリスナーが上書きされることはありません。

于 2012-09-20T13:23:27.210 に答える
3

2 番目のものを宣言すると、最初のものと連鎖できます。

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 に答える
1

これを試して:

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

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