代码段1不能执行成功,我知道是因为 script 先于 body 出现。如果不想按照代码段2那样,将代码搬到 body 之后,那么代码段1应该加个什么函数。是 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>
<script language="javascript">
var o = document.body;
//创建链接
function createA(url,text)
{
    var a = document.createElement("a");
    a.href = url;
    a.innerHTML = text;
    a.style.color = "red";
    o.appendChild(a);
}
createA("http://xxxx.com/","JavaScript");
</script>
</head>
<body></body></html><!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>
</head>
<body>
<script language="javascript">
var o = document.body;
//创建链接
function createA(url,text)
{
    var a = document.createElement("a");
    a.href = url;
    a.innerHTML = text;
    a.style.color = "red";
    o.appendChild(a);
}
createA("http://xxxx.com/","JavaScript");
</script>
</body></html>

解决方案 »

  1.   


    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>测试分页</title>
    </head><body onload="test()">
    <div id="test">ss</div>
    </body>
    </html>
    <script>
    function test(){
    alert("test")
    }
    </script>
      

  2.   

    我用了 onload 函数了,为什么不能成功。<script language="javascript">
    var o = document.body;
    function createA(url,text)
    {
        var a = document.createElement("a");
        a.href = url;
        a.innerHTML = text;
        a.style.color = "red";
        o.appendChild(a);
    }
    //createA("http://xxxx.com/","JavaScript");
    </script>
    </head>
    <body onload="createA('http://xxxx.com/','JavaScript')">
    </body>后来我把 var o = document.body 转移到函数的定义里,就行了。这是什么缘故?<script language="javascript">
    function createA(url,text)
    {
        var o = document.body; //这句不能放到函数的定义之外
        var a = document.createElement("a");
        a.href = url;
        a.innerHTML = text;
        a.style.color = "red";
        o.appendChild(a);
    }
    //createA("http://xxxx.com/","JavaScript");
    </script>
    </head>
    <body onload="createA('http://xxxx.com/','JavaScript')">
    </body>
      

  3.   

    <javascript>createA("http://xxxx.com/","JavaScript");</javascript>
      

  4.   

    对。要不然,也可以把代码放到</html>的后面。
      

  5.   

    window.onload=function()
    {
    createA("http://xxxx.com/","JavaScript");}
      

  6.   

    你放到 function createA(){} 外边 
    onload 执行不到 o ;找不到o对象,报错
      

  7.   

    var o = document.body;
    代码在<body>标签之前
    在body还没有被呈现之前
    document.body当然不能获取你想要的东西
    自然执行不成功.
      

  8.   

    添加句柄<body onload="createA()">