外部JS函数onload与用户函数onload冲突

时间:2013-05-14 09:32:01

标签: javascript

当您需要在页面加载时触发多个函数时,您可以使用以下内容处理它:

function myfunction() {
    alert('My function!');
}

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

pctaddLoadEvent(myfunction);

http://jsfiddle.net/SSEhr/

如果使用pctaddLoadEvent函数触发需要触发的功能,则此功能正常。但是,如果要使用外部JS文件将该段代码插入到不同的页面上,我需要记住我的代码的健壮性,并且可以说有人在他们的网站中包含了examplecode.js,但他们也有一些他们的网页上有javascript,他们有类似的东西:

window.onload = function() {
    alert('user function');
    //and some other user functions
}

这会破坏我的代码,因为您可以看到here

所以简单来说,如何在不关心最终用户功能的情况下启动我的函数onload?

PS。我不能使用jquery。

1 个答案:

答案 0 :(得分:0)

我认为这个问题可以通过使用函数的命名空间来解决 试试这个javascript namespacing