在通过js脚本添加页面元素的时候,出现document.body为空或不是对象

我想通过js在页面上body之前添加一个a标签,但是老是显示document.body为空或不是对象,麻烦大神们看下,谢谢了

<script type = "text/javascript">
// var htmlbody = (document.documentElement)?document.documentElement:document.body;
var a = document.createElement('a');
document.body.appendchild(a);
a.innerHTML = '<a href = "http://www.baidu.com" >百度一下你就知道</a>';

</script>

 两种方式解决

    封装函数

把你现有逻辑封装到一个funcation中,在页面onload加载时执行

 

<script> 
window.onload = function () { 
    var a = document.createElement('a');
    document.body.appendchild(a);
    a.innerHTML = '<a href = "
" >百度一下你就知道</a>'; 

</script>

2.  自动执行

     和你目前方式一样,但先要弄清原理

     因为HTML为逐行加载,所以页面加载时,document.body还没有生成,所以显示document.body为空或不是对象

     但只要把你js代码换个位置即可,由于要使用到body标签,那么就移动到body后即可

 

<body>

<body>

<script>

     ....你的代码

</script>

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-17
<script>
window.onload = function () {
    var _body = document.body;
    var _a = document.createElement("a");
    _body.appendChild(_a);
}
</script>

第2个回答  2014-04-17
<HTMLBodyElement> has no method 'appendchild'

在通过js脚本添加页面元素的时候,出现document.body为空或不是对象
<script> window.onload = function () { var a = document.createElement('a'); document.body.appendchild(a); a.innerHTML = '<a href = "" >百度一下你就知道<\/a>'; } <\/script>2. 自动执行 和你目前方式一样,但先要弄清原理 因为HTML为逐行加载,所以页面加载时,docu...

打开一个网站时提示:'document. body ’ 为空或不是对象
这是由与 IE6 引起的问题,可以升级一下你的IE 这是由于引入的JS库在IE6中存在BUG 如果你是网站开发者 <\/body><script type="text\/javascript" src="ui\/js\/table\/table.js"><\/script> <script type="text\/javascript" src="ui\/js\/jquery.js"><\/script> <script type="text\/javascript" s...

怎么解决document.body is null
ody是JS中的DOM技术中所有浏览器支持的属性,但在我们的代码编写中,还是会碰到document.is null问题 �0�2 �0�2 �0�2 �0�2问题的原因很简单,是因为我们在body标签前就加载了js,此时还没有body元素 �0�2 ᦙ...

extjs grid报错。this.el.dom为空或不是对象。
<body onLoad="grid.render('grid');"> <div id="grid"><\/div> <\/body> <\/html>

ExtJS新手 this.el.dom 为空或不是对象
贴出来的代码是没问题的,我测试通过,可能是其他方面的问题,我的代码 \/\/grid0220.js全部内容 var UI = function() { return { init : function() { Ext.BLANK_IMAGE_URL = '..\/..\/js\/ext\/resources\/images\/default\/s.gif';Ext.QuickTips.init();initTable();} };function initTable()...

extjs初学程序,this.el.dom不是对象或为空
><\/div> <\/body> <\/html> 为什么会出现这个问题,给你分析下:1,grid的el属性是内置的el对象,是不能修改的。2,由于脚本的执行是在<body>载入前执行的,也就是说grid的容器div还未创建,所以你建的这个grid就不能渲染到body里面id为grid的容器里面。3,grid.render 方法要为其填写参数。

obj为空或不是对象,25行报这个错。
var obj = document.getElementById("Ad");说明这一行,没有获取到该对象 ~~~

...时时,出现‘null’为空或不是对象,ext-all.js 无法显示面板 该怎 ...
最好把代码发出来,一般情况下,在IE里面,很有可能是因为包含了错误的字符。比如 1 ,{ aaa:"bbb",bbb:"bbb",} 2,["aaa","bbb",]最好能把你的代码贴上来。

使用js创建元素无法显示的问题
楼下说的极对,可以添加window.onload。也可以将js代码添加到页面的尾部。这样也可以调用成功 <head> <meta http-equiv="Content-Type" content="text\/html; charset=utf-8" \/> <title>无标题文档<\/title> <\/head> <body> <div id="board">科目<\/div> <script type="text\/javascript"> var...

null为空或不是对象 行1字符5417,显示网页错误怎么办
也不一定是js文件的错误,也可能是你调用程序时所调用的东西不要程序要求的对象所造成的。

相似回答