IE6下的document.body=null,这是为什么?

gzh_seagull 2002-07-05 10:16:34
以前写的代码其中用到document.body,但在IE6下面提示document.body不是对象,这是为什么?
...全文
720 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ringfo 2002-07-06
  • 打赏
  • 举报
回复
正确,领教
cnweboy 2002-07-05
  • 打赏
  • 举报
回复
其实是“test1();”的调用时间问题,
因为当执行“test1();”时,IE尚未解释到BODY,即此时尚未有BODY对象。

我想应该如此调用:
window.onload=test1;
在整个页面装载完毕才执行“test1();”
seabell 2002-07-05
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function test(){
alert("onfocus");
}
function test1()
{
if (document.all){

window.onfocus =test;
}
}
test1();
//-->
</SCRIPT>

</HEAD>
<BODY>

</BODY>
</HTML>
gzh_seagull 2002-07-05
  • 打赏
  • 举报
回复
不是标签的问题

下面代码在ie6下报错,其它版本就没有问题
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function test(){
alert("onfocus");
}
function test1()
{
if (document.all){

document.body.onfocus =test;
}
}
test1();
//-->
</SCRIPT>

</HEAD>
<BODY>

</BODY>
</HTML>
chenzengxi 2002-07-05
  • 打赏
  • 举报
回复
就是说你缺少body这个标签.
chenzengxi 2002-07-05
  • 打赏
  • 举报
回复
这样:
<script>
alert(document.body)
</script>

换成这样:
<body>
<script>
alert(document.body)
</script>
</body>


chenzengxi 2002-07-05
  • 打赏
  • 举报
回复
哦,承认错误.
careless 2002-07-05
  • 打赏
  • 举报
回复
非也。document文档是按顺序装入的,你在执行<head>里面的代码时,<body>还没被装入呢。
在尽量不改你的源程序情况下,可以这样:
不要把调用test1()直接写在<head>里;最好这样:<body onload="test1()">
chenzengxi 2002-07-05
  • 打赏
  • 举报
回复
这样就不会出错:

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=javascript>
<!--
function test(){
alert("onfocus");
}
function test1()
{
if (document.all){

document.body.onfocus =test;
}
}
test1();
//-->
</SCRIPT>
</BODY>
</HTML>

因为你的代码不在body内,个人感觉是IE6对这些的要求比较严格而已。
gzh_seagull 2002-07-05
  • 打赏
  • 举报
回复
seabell(百合心) 先谢谢你的回答,但我是想知道为什么document.body会是null,因为我有很多现成的代码都是用的document.body,可是到了IE6下就报错,我不想改以前的代码。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧