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
元素在解析器遇到starting
body
tag.yes后立即存在。但他想在这之前就这么做,他说您正在使用jquery吗?要在窗口之前使用“body”元素。onload??不可能。因为DOM尚未构造,所以body元素不会exist@vivek_nk实际上,
body
元素在解析器遇到starting
body
tag.yes后立即存在。但他想在这之前就这么做,他说这在
正文
的末尾添加了
span
,这是您希望它出现的地方吗?我需要在正文中,无论在哪里,但是,如果网络速度很慢,并且加载文档(正文中的所有内容)需要很长时间,那么当
文档特别可用时,我们如何执行代码。正文
,不必等待文档加载?这会在
正文
的末尾添加
span
,这是您希望它出现的地方吗?我需要在正文中,无论在哪里,但是,如果网络速度慢,并且加载文档(正文中的所有内容)需要很长时间怎么办,那么,当
document.body
特别可用时,我们如何执行代码,而不必等待加载文档?