两个Javascript函数一个window.onload = Custom.init;和一个window.onload = function(){

时间:2012-03-26 16:06:35

标签: javascript function

我正在使用两个函数,一个来自此站点http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/,其使用函数调用如下:

window.onload = Custom.init;

之后我正在使用其他函数调用

window.onload = function() {...

第二个是杀死第一个! 如何在第二个上修改或进行不同的呼叫,以便它们可以一起工作?

6 个答案:

答案 0 :(得分:4)

使用addEventListener / attachEvent。你可以使用一个抽象它的库,比如jQuery:

$(window).load(function () {
  // run code
});

这可以使用不同的功能多次运行而不会出现问题。

答案 1 :(得分:2)

window.onload = function() {
    Custom.init();
    // ...
};

答案 2 :(得分:0)

您必须创建自己的函数,并将它们都调用。

window.onload = function(){
    Custom.init();
    function() { ... }
}

答案 3 :(得分:0)

我对此的偏好是:

loadFunctions = [];
window.onload = function() {var x; while(x = loadFunctions.shift()) x();};

然后,我没有设置window.onload,而是:

loadFunctions.push(function() {...});

当然,我可以这样做,因为我没有使用可能会干扰window.onload的外部库。

编辑:如果你无法控制其中一个,你可以这样做:

var ool = window.onload;
window.onload = function() {
    if( ool) ool();
    // new code here
};

答案 4 :(得分:0)

手动拨打Custom.init

window.onload = function() {
   Custom.init();
   //your stuff
};

答案 5 :(得分:0)

所有onLoad事件处理程序的一个漂亮的小包装器怎么样?

window.onLoadHandlers = [];
window.onLoad = function() {
    while (window.onLoadHandlers.length) {
        window.onLoadHandlers.shift()();
    }
};

然后将两个函数推送到该数组:

window.onLoadHandlers.push( Custom.init );
window.onLoadHandlers.push( function() { ...

您可以考虑使用jQuery或其他任何为此提供更好解决方案的库。