两个窗口.在网站上打开

Two window.onload on the site

本文关键字:网站 窗口 两个      更新时间:2023-09-26

我在包含其他调用函数的脚本中使用window.onload

window.onload = function() {
            maxHeight_main_column();
...
}

并在头标签中添加了我的脚本

在正文中,我添加了来自其他网站的新脚本,该脚本再次使用window.onload,我的window.onlead工作良好,但第二个window.onlad不工作,我如何解决这个问题?

我无法用window.onlad 编辑第二个文件

只能为window.onload分配一个函数。但是,您可以有多个侦听同一事件的事件侦听器。

// cross browser way to add an event listener
function addListener(event, obj, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(event, fn, false);   // modern browsers
    } else {
        obj.attachEvent("on"+event, fn);          // older versions of IE
    }
}
addListener('load', window, myFunc1);    // you can have multiple ones of these
addListener('load', window, myFunc2);    // you can have multiple ones of these
window.onload = myFunc3;                 // one and only one of these

有关更多详细信息,请参阅addEventListener上的MDN文档。

在您的特定情况下,您可以将此代码用于您的onload处理程序,并让另一个使用window.onload:

// cross browser way to add an event listener
function addListener(event, obj, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(event, fn, false);   // modern browsers
    } else {
        obj.attachEvent("on"+event, fn);          // older versions of IE
    }
}
addListener('load', window, function() {
    maxHeight_main_column();
    ...
});

您可以使用下一个函数添加多个onLoad侦听器(从这里复制):

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

包含jQuery并使用此:

$(document).ready(function() {
    maxHeight_main_column();
})