解决方案 »

  1.   

    document.body.onload = document_body_onload();//错误document.body.onload = document_body_onload;//正确
      

  2.   

    额 你把代码复制下去试了吗?反正我这样document.body.onload = document_body_onload;浏览器无反应!必须加上括号()。
      

  3.   

    我详细说一下吧1.
    document_body_onload()是立即执行函数
    document_body_onload是获取函数的引用
    事件所需要的是函数的引用,所以要
    document.body.onload = document_body_onload;2.
    你这样document.body.onload = document_body_onload;浏览器无反应是因为你的代码在<head></head>中,
    body对象还没有加载,body对象还不存在,要把代码放在<body></body>中,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title> new document </title>
    </head><body>
    <script type="text/javascript">
    function document_body_onload() {
        alert("document.body.onload");
    }
    document.body.onload = document_body_onload;
    </script>
    </body>
    </html>
      

  4.   

    3.document对象没有onload事件,更没有onLoad4.
    document.body.onload和window.onload是同一个地址,会相互覆盖<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title> new document </title>
    </head><body>
    <script type="text/javascript">
    window.onload = function () { alert("window.onload"); };
    alert(document.body.onload===window.onload);//-------------》true
    alert(document.body.onload);</script>
    </body>
    </html>
      

  5.   

    大神!我对着你的问题再提出问题
    1、你说得没错,事件是需要函数的引用。可是我在
    <body>
        <script type="text/javascript">
            //document.body.onload = document_body_onload;
            //document.body.onload = document_body_onload();
           //以上两种写法都可以执行!
        </script>
    </body>所以,我觉的。如果写成document.body.onload = document_body_onload(),这就跟这种写法一致<body onload="document_body_onload()"></body>,因为在标签里写事件,注册时实质上是body.onload=function(){ document_body_onload() }这样的!也就是放个匿名函数。然后在匿名函数里执行其它函数一样。这也是大多数在onclick里直接写“alert('');”能弹出对话框的原因。嗯!我是这样理解的,不知道这样对不对!若不对,请大神指出,小弟万分感谢!
    2、这个问题我想了一下,确实如你所说!在<head>标签里,<body>确实还没加载。大神说得多!小弟受教了!
    3、关于document.onload事件,这个事件确实没有!在你的提示下(事件是引用,而不是执行),我试着写了这样一个东西:docudoment.abc=document_onload();结果弹出了对话框!相信document.abc肯定没这个属性,也没有这个事件吧!所以就相当于只有document_onload();这个是执行函数,因为找不到document.abc,但=号后面的函数还是要执行!所以,也把其他人的悖论!然后第一问的document.body.onload = document_body_onload();就是立即执行函数!所以,没有问题!
    4、body.onload和window.onload确实会相互覆盖,就如大神所言。地址相同!求大神指点!
      

  6.   

    document.body.onload = document_body_onload()
    不等于
    document.body.onload=function(){ document_body_onload() }function(){ document_body_onload() }是返回这个匿名函数的引用,
    要立即执行匿名函数也要在后面加()<script type="text/javascript">
    aaa = function (){alert(555);}();
    </script>