Javascript 存在document.body时执行js
我在文档头部分有一些脚本,如下所示Javascript 存在document.body时执行js,javascript,Javascript,我在文档头部分有一些脚本,如下所示 <html> <head> <title>Javascript Tests</title> <script type="text/javascript"> var mySpan = document.createElement("span"); mySpan.innerHTML = "This is my span!"; myS
<html>
<head>
<title>Javascript Tests</title>
<script type="text/javascript">
var mySpan = document.createElement("span");
mySpan.innerHTML = "This is my span!";
mySpan.style.color = "red";
document.body.appendChild(mySpan);
</script>
</head>
<body>
</body>
</html>
Javascript测试
var mySpan=document.createElement(“span”);
mySpan.innerHTML=“这是我的span!”;
mySpan.style.color=“红色”;
document.body.appendChild(mySpan);
在这个脚本中,我想将元素添加到body中,但由于document.body为null异常而失败。我知道尸体现在不存在。但我仍然需要做这个操作,因为a无法将这个脚本插入到正文中,它受到API的限制,我无法访问所有站点代码
重要的一点是:我需要在窗口加载之前执行此操作(我指的是window.load事件)
我可以这样做吗?除非绝对必要,否则我通常避免使用框架,但在这种情况下,我认为您可以使用jquery:
$(function () {
// do stuff after DOM has loaded
});
因此,将代码包装为:
<script type="text/javascript">
$(function () {
var mySpan = document.createElement("span");
mySpan.innerHTML = "This is my span!";
mySpan.style.color = "red";
document.body.appendChild(mySpan);
});
</script>
$(函数(){
var mySpan=document.createElement(“span”);
mySpan.innerHTML=“这是我的span!”;
mySpan.style.color=“红色”;
document.body.appendChild(mySpan);
});
请记住,您需要引用jQuery
这与窗口不同。onload
-onload
在加载所有其他资源(图像等)后执行
我在示例中展示的代码将在DOM完成加载后执行除非绝对必要,否则我通常避免使用框架,但在本例中,我认为您可以使用jquery:
$(function () {
// do stuff after DOM has loaded
});
因此,将代码包装为:
<script type="text/javascript">
$(function () {
var mySpan = document.createElement("span");
mySpan.innerHTML = "This is my span!";
mySpan.style.color = "red";
document.body.appendChild(mySpan);
});
</script>
$(函数(){
var mySpan=document.createElement(“span”);
mySpan.innerHTML=“这是我的span!”;
mySpan.style.color=“红色”;
document.body.appendChild(mySpan);
});
请记住,您需要引用jQuery
这与窗口不同。onload
-onload
在加载所有其他资源(图像等)后执行
我在示例中显示的代码将在DOM完成加载后执行如果您不想使用
Jquery
可以使用DOMContentLoaded
当文档已完全加载和解析时,将触发DOMContentLoaded
事件,而无需等待样式表、图像和子帧完成加载
document.addEventListener("DOMContentLoaded", function(event) {
var mySpan = document.createElement("span");
mySpan.innerHTML = "This is my span!";
mySpan.style.color = "red";
document.body.appendChild(mySpan);
});
支持浏览器:
Chrome Firefox (Gecko) IE Opera Safari
0.2 1.0 (1.7 or earlier) 9.0 9.0 3.1
如果不想使用
Jquery
,可以使用DOMContentLoaded
当文档已完全加载和解析时,将触发DOMContentLoaded
事件,而无需等待样式表、图像和子帧完成加载
document.addEventListener("DOMContentLoaded", function(event) {
var mySpan = document.createElement("span");
mySpan.innerHTML = "This is my span!";
mySpan.style.color = "red";
document.body.appendChild(mySpan);
});
支持浏览器:
Chrome Firefox (Gecko) IE Opera Safari
0.2 1.0 (1.7 or earlier) 9.0 9.0 3.1
看起来是检测何时
文档的最快方法。body
可用的是MutationObserver
,如中所示看起来是检测何时文档的最快方法。body
可用的是MutationObserver
,如中所示。是否使用jquery?是否要在窗口之前使用“body”元素。onload??不可能。因为DOM尚未构造,所以body元素不会exist@vivek_nk实际上,body
元素在解析器遇到startingbody
tag.yes后立即存在。但他想在这之前就这么做,他说您正在使用jquery吗?要在窗口之前使用“body”元素。onload??不可能。因为DOM尚未构造,所以body元素不会exist@vivek_nk实际上,body
元素在解析器遇到startingbody
tag.yes后立即存在。但他想在这之前就这么做,他说这在正文
的末尾添加了span
,这是您希望它出现的地方吗?我需要在正文中,无论在哪里,但是,如果网络速度很慢,并且加载文档(正文中的所有内容)需要很长时间,那么当文档特别可用时,我们如何执行代码。正文
,不必等待文档加载?这会在正文
的末尾添加span
,这是您希望它出现的地方吗?我需要在正文中,无论在哪里,但是,如果网络速度慢,并且加载文档(正文中的所有内容)需要很长时间怎么办,那么,当document.body
特别可用时,我们如何执行代码,而不必等待加载文档?