首页 > js中为什么使用了addLoadEvent函数还是无法同时加载几个js文件?

js中为什么使用了addLoadEvent函数还是无法同时加载几个js文件?

我有三个js文件都要使用addLoad Event函数,但是只有最后一个js文件才能加载成功,前面两个好像给覆盖了,怎么调试都不行,请问这是哪一步错了啊,求大神解答。以下是源码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>充实文档的内容</title>
    <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>
</head>
<body>
    <h1>What is the Document Object Model?</h1>
    <p>The <abbr title="World Wide Web Consortium">W3C</abbr> defines
     the <abbr title="Document Object Model">DOM</abbr> as: </p>
     <blockquote cite="http://www.w3.org/DOM/">
         <p>
             A platform- and language-neutral interface that will allow
             programs and srcipts to dyamically access and update the content, structure and style of documents.
         </p>
     </blockquote>
     <p>
         It is an <abbr title="Application Programming Interface">Api
         </abbr> that can be uesd to navigate <abbr title="HyperText 
             Markup Language">HTML</abbr> and <abbr title="eXtensible 
             Markup language">XML</abbr> documents.
     </p>
     <ul id="navigation">
         <li><a href="index.html" accesskey="1">Home</a></li>
         <li><a href="search.html" accesskey="4">Search</a></li>
         <li><a href="contact.html" accesskey="9">Contact</a></li>
     </ul>
</body>
</html>


以下是addLoadEvent函数:


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



再放其中一个要加载的js文件吧

 function displayCitations() {
    // 取得所有引用
    if (!document.getElementsByTagName || !document.createElement || !document.createTextNode) return false;
    var quotes = document.getElementsByTagName("blockquote");
    for (var i = 0; i < quotes.length; i++) {
        if (!quotes[i].getAttribute("cite")) continue;
        var url = quotes[i].getAttribute("cite");
        var quoteChildren = quotes[i].getElementsByTagName("*");
        if (quoteChildren.length < 1) continue;
        var elem = quoteChildren[quoteChildren.length - 1];
        // 创建a元素节点
        var link = document.createElement("a");
        // 创建值为“source”的文本节点
        var link_text = document.createTextNode("source");
        // 把文本节点插入a元素节点
        link.appendChild(link_text);
        // 把href属性节点添加给新链接
        link.setAttribute("href", url);
        // 创建sup属性节点
        var superscript = document.createElement("sup");
        // 把新链接放入sup元素
        superscript.appendChild(link);
        elem.appendChild(superscript);
    };
}
addLoadEvent(displayCitations);
        
    
    function displayAccessKeys() {
if (!document.getElementsByTagName || !document.createElement || !document.createTextNode) return false;
// 取得文档中所有的链接
var links = document.getElementsByTagName('a');
// 创建一个数组,保存访问键
var akeys = new Array();
// 遍历链接
for (var i = 0; i < links.length; i++) {
    var current_link = links[i];
    // 如果没有 current_link属性,继续循环
    if (!current_link.getAttribute("accesskey")) continue;
    // 取得accesskey的值
    var key = current_link.getAttribute("accesskey");
    // 取得链接文本
    var text = current_link.lastChild.nodeValue;
    // 添加到数组
    akeys[key] = text;
}
// 创建列表
var list = document.createElement("ul");
// 遍历访问键
for (key in akeys) {
    var text = akeys[key];
    // 创建放到列表中的字符串
    var str = key + ":" + text;
    // 创建列表项
    var item = document.createElement("li");
    var item_text = document.createTextNode(str);
    item.appendChild(item_text);
    // 把列表项添加到列表中
    list.appendChild(item);
}
// 创建标题
var header = document.createElement("h3");
var header_text = document.createTextNode("Accesskeys");
header.appendChild(header_text);
// 把标题添加到页面主体
document.body.appendChild(header);
// 把列表添加到页面主体
document.body.appendChild(list);

}

addLoadEvent(displayAccessKeys);

我也是这个问题!!我用Chrome看了提示我:elem.appendChild(superscript);这一行代码错误


window.onload是只在所有js加载完后才会触发的事件回调,所以只有在你的最后一个文件加载后才会执行


同样遇到这个问题求高手解答

【热门文章】
【热门文章】