2016-03-03 40 views
-2

guys.I困惑了一个简单的问题。请帮助我。为什么我的函数addLoadEvent不能同时上传一些js文件? 这是我的代码:addLoadEvent不能工作?

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

和:

<link rel="stylesheet" type = "text/css" media="screen" href="styles/typography.css"> 
<script type="text/javascript" src="scripts/addLoadEvent.js"> 
</script> 
<script type="text/javascript" src="scripts/displayCitations.js"> 
</script> 
<script type="text/javascript" src="scripts/displayAccessKeys.js"> 
</script> 
<script type="text/javascript" src="scripts/displayAbbreviations.js"> 
</script> 

为什么我的功能addLoadEvent总是上传的最后一个JavaSript文件,和另外两个文件coverd?

+0

addLoadEvent.js是做什么的? –

回答

1

你不叫oldonload

window.onload = function() { 
    oldonload(); // <-- need() there 
    func(); 
} 

考虑使用addEventListener

+0

喔,太酷了!谢谢! – YAN7

0

你正在做的事情真的不是拥有多个事件处理程序的正确方法。相反,只需使用window.addEventListener(),因为具有多个事件处理程序的功能已经内置,并且没有理由重新创建它。

function addLoadEvent(func) { 
    window.addEventListener("load", func); 
} 
+0

我只是在短时间内学习这个JavaScript,我会看到你的功能,谢谢! – YAN7