多个javascript window.onload解决方案

时间:2013-05-09 14:19:37

标签: javascript

在我提出这个问题之前,我从未发布过类似的问题,但我不明白如何在我的代码中实现它。我有这样的代码

window.onload = function() {
 var url  = getQueryVariable("url");
 document.getElementById('view').src = url;
}
window.onload = function() {
    var linkDirect = document.getElementsByClassName("frame");
    for (var i = 0; i < linkDirect.length; i++) {
        linkDirect[i].href = "http://namablog.blogspot.com/p/demo.html?url=" + linkDirect[i].href
    }
}

然后,如何只使用一个window.onload

来执行代码

3 个答案:

答案 0 :(得分:23)

您可以使用addEventListener或任何jQuery等效项。

window.addEventListener('load', function (){
    alert('Function #1');
});

window.addEventListener('load', function (){
    alert('Function #2');
});

请务必在窗口加载之前调用

答案 1 :(得分:1)

window.addEventListener在IE中不起作用,所以请使用window.attachEvent

你可以做这样的事情

function fun1(){
    // do something
}

function fun2(){
    // do something
}


var addFunctionOnWindowLoad = function(callback){
      if(window.addEventListener){
          window.addEventListener('load',callback,false);
      }else{
          window.attachEvent('onload',callback);
      }
}

addFunctionOnWindowLoad(fun1);
addFunctionOnWindowLoad(fun2);

答案 2 :(得分:0)

对我有用的最简单的解决方案:

function doOnLoad() {
        onloadfn1();
        onloadfn2();
        onloadfn3();
}
window.onload = doOnLoad;

本文详细解释了它:http://developer.expressionz.in/blogs/2009/03/07/calling-multiple-windows-onload-functions-in-javascript/

我希望这有助于你们中的一些人。