Javascript 无法将InnerHTML属性设置为null
我有一个简单的html页面,在body标签中没有代码。 我想通过javascript在body标记中插入html 我的javascript文件如下所示Javascript 无法将InnerHTML属性设置为null,javascript,html,Javascript,Html,我有一个简单的html页面,在body标签中没有代码。 我想通过javascript在body标记中插入html 我的javascript文件如下所示 var Global={ UserWall:function(){ return "a very long html code"; } }; var globalObject=Object.create(Global); document.getElementsByTagName("body").
var Global={
UserWall:function(){
return "a very long html code";
}
};
var globalObject=Object.create(Global);
document.getElementsByTagName("body").item(0).innerHTML=globalObject.UserWall();
现在我希望这个很长的html代码在页面加载时自动插入到body标记中。
但它给了我我在标题中提到的错误。为什么
这也是创建基于ajax的网站(无需重新加载页面)的正确方法吗?这意味着如果我调用服务器端脚本来更新这段很长的html代码并将其附加到页面正文中。也许这样可以:
document.getElementsByTagName(“body”)[0]。innerHTML
是否在html的
中运行?如果是这样的话,您需要确保
标记已首先实际加载
您需要使用onload处理程序,例如:在构建DOM之前,几乎可以肯定您正在运行代码。尝试在处理程序函数中运行代码(但请参见下面的注释): 另一种流行的跨浏览器解决方案是将
块放在关闭
标记之前。这可能是您的最佳解决方案,具体取决于您的需求:
<html>
<body>
<!-- all of your HTML goes here... -->
<script>
// code in this final script element can use all of the DOM
</script>
</body>
</html>
//最后一个脚本元素中的代码可以使用所有DOM
- 请注意,
将等待所有图像和子帧加载完毕,这可能需要很长时间才能构建DOM。您还可以使用window.onload
来避免此问题,但跨浏览器不支持此操作。body底部技巧是跨浏览器的,并且在DOM完成后立即运行document.addEventListener(“DOMContentLoaded”,function(){…})
- 我已经完成了这里提到的所有解决方案。但是,直到我使用Jquery创建了这个程序,它们才起作用:
在我的HTML页面中:
> <div id="labelid" > </div>
>
当我点击一个按钮时,我把它放在我的JS文件中:
$("#labelid").html("<label>Salam Alaykom</label>");
$(“#labelid”).html(“Salam Alaykom”);
它在外部脚本中运行并不重要。你什么时候装货?如果它包含在
标签中,它仍然会立即运行。它没有拾取body标签,因此不知道您的问题是什么。它在
标签中!它位于
标记之前。因此,内容尚未加载。还没有尸体标签。使用onload处理程序。thnx的解释很好。嘿,你能告诉我这是开发ajax应用程序的正确方法吗?在运行时将文本附加到正文中?完美的答案!
$("#labelid").html("<label>Salam Alaykom</label>");