代码段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>
<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>
<!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>
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>
{
createA("http://xxxx.com/","JavaScript");}
onload 执行不到 o ;找不到o对象,报错
代码在<body>标签之前
在body还没有被呈现之前
document.body当然不能获取你想要的东西
自然执行不成功.