----------------------HTML代码-------------------
<html>
<head>
<script src="addLoadEvent.js"></script>
<script src="test.js"></script>
</head>
<body>
<div>XXXXXX</div>
</body>
</html>
----------------addLoadEvent.js代码--------------
function addLoadEvent(func)
{
var oldload=window.onload;
if(typeof window.onload!='function')
{
window.onload=func;
}
else
{
window.onload=function()
{
oldload();
func();
}
}
}
---------------------test.js代码---------------------
function test()
{
var para=document.createElement("p");
var text=document.createTextNode("Hello World");
var bdy=getElementsByTagName("body")[];
para.appendChild(text);
bdy[0].appendChild(para);
}
addLoadEvent(test);
----------------------------------------------------------
啊呀呀,如果在addLoadEvent函数放到test,js中,就可以显示,但是如果把addLoadEvent单独写到addLoadEvent.js中刷新就什么也没有了,按照理论应该是可以这样的啊,小弟百思不得其解啊,各位帅哥美女大神们救救小白吧!!谢谢你们了~~

解决方案 »

  1.   

    function test(){
        var para=document.createElement("p");
        var text=document.createTextNode("Hello World");
        var bdy=document.getElementsByTagName("body");
        para.appendChild(text);
        bdy[0].appendChild(para);
    }
      

  2.   

    var bdy=getElementsByTagName("body")[];那个中括号没必要吧?
      

  3.   

    var bdy=getElementsByTagName("body")[];
    这个要改为:
    var bdy=document.getElementsByTagName("body");
      

  4.   


    不是那个[]的问题,我把addLoadEvent()函数写在这里是可以的,但是把addLoadEvent函数单独写在一个js文件里就不行了
      

  5.   


    不是那个问题撒,改了还是没反应呀,主要是那个addLoadEvent函数,写在test.js里面就可以用,单独写在addLoadEvent.js里面就不可以了。。
      

  6.   

    晕哦,都没有看懂你要实现什么东西~~
    我运行没有问题啊,你的js我都没有改动,调试了一下,你的问题就是
    var bdy = document.getElementsByTagName("body");默认获取的就是数组形式的,所以不用加[],
    再就是,你引入外部的js,页面上也要调用啊,所以我在页面加载的时候调用了你的test();其余的没有变动
    最后页面显示的效果就是 在AAAAA下面显示了 Hello World<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script language="JavaScript" src="/otherJs/test.js" type="text/javascript"></script>
    <!-- --> <script language="JavaScript" src="otherJs/addLoadEvent.js" type="text/javascript"></script> 
    <title>Insert title here</title>
    <script type="text/javascript">
    window.onload = function(){
    test();
    }
    </script>
    </head>
    <body id="_body">
    <div>AAAAAAAAAAAAAAA</div>
    </body>
    </html>test.js:function test(){
    var para = document.createElement("p");
    var text = document.createTextNode("Hello World");
    var bdy = document.getElementsByTagName("body");
    //alert(bdy[0].attributes.getNamedItem("id").nodeValue);
    para.appendChild(text);
    bdy[0].appendChild(para);
    }
    addLoadEvent(test);
    addLoadEvent.js:function addLoadEvent(func) {
    var oldload = window.onload;
    if (typeof window.onload != 'function') {
    window.onload = func;
    } else {
    window.onload = function() {
    oldload();
    func();
    }
    }
    }
      

  7.   

    大哥你的HTML页面有点问题啊,你是用了<script>window.onload=function(){
    test();
    }</script>那这样的话,test.js中的那个addLoadEvent(test);其实就没用啊,我的意思就是
    <head>
    <script src="addLoadEvent.js"></script>
    <script src="test.js"></script>
    </head>
    这样为什么显示不出test.js中的那个"Hello World",而如果把addLoadEvent.js中的内容复制到test.js中,却又可以显示出了,test.js代码如下:
    function addLoadEvent(func)
    {
    var oldload=window.onload;
    if(typeof window.onload!='function')
    {
    window.onload=func;
    }
    else
    {
    window.onload=function()
    {
    oldload();
    func();
    }
    }
    }
    function test(){
        var para=document.createElement("p");
        var text=document.createTextNode("Hello World");
        var bdy=document.getElementsByTagName("body");
        para.appendChild(text);
        bdy[0].appendChild(para);
    }
    addLoadEvent(test);
    这样是可以的,但是把addLoadEvent单独写在addLoadEvent.js里面,在这样调用
    <head>
    <script src="addLoadEvent.js"></script>
    <script src="test.js"></script>
    </head>
    就不可以了,难道是写法不对吗?可是书上是这么写的啊,郁闷
      

  8.   

    1:js1.js
    function addLoadEvent(func){
        var oldload=window.onload;
        if(typeof window.onload!='function'){
            window.onload=func;
        }else{
            window.onload=function(){
                oldload();
                func();
            }
        }
    }
    2:js2.js
    function test(){
        var para=document.createElement("p");
        var text=document.createTextNode("Hello World");
        var bdy=document.getElementsByTagName("body");
        para.appendChild(text);
        bdy[0].appendChild(para);
    };
    addLoadEvent(test);
    3:在测试页面中加载js
    <script type="text/javascript" src="js1.js"></script>
    <script type="text/javascript" src="js2.js"></script>就这么一个问题。搞这么久。我测试一点问题都没有,你要是还有问题。就将上面的代码复制了去试去你自己的代码找问题也很简单。
    1:保证两个js中的函数写正确了
    2:在每个js结尾中加上一句:alert('test');看看你的js是否能正确执行再说