addLoadEvent无法正常工作?

时间:2016-03-03 17:19:25

标签: javascript html5

伙计们。我很容易被一个简单的问题搞糊涂了。请帮帮我。为什么我的函数addLoadEvent不能同时上传一些js文件?   这是我的代码:

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文件,而另外两个文件被覆盖?

2 个答案:

答案 0 :(得分:1)

您没有致电oldonload

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

考虑使用addEventListener

答案 1 :(得分:0)

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

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