如何使用javascript显式加载页面的主体?

时间:2018-02-17 22:44:44

标签: javascript dom document-body

所以,可以使用:

<html>
    <script> 
        function loadBodyNow(){
            ....
        }
        loadBodyNow() 
    </script>

    <body>
        Hello world!
    </body>
</html>

在页面加载后运行一个函数,但我希望发生相反的情况。

类似的东西:

{{1}}

2 个答案:

答案 0 :(得分:0)

不要将脚本标记放在正文后面。将所有脚本标记放在head元素中,然后执行以下操作:

<script>
  window.addEventListener('load', function() {
    // body is loaded! execute code here
  })
</script>

答案 1 :(得分:0)

加载文档是浏览器的工作,它不需要JavaScript

除非JavaScript以alert()阻止浏览器,否则浏览器将在收到源时尽可能快地加载HTML。

&#13;
&#13;
<script>
var blocking = function() {
  alert('blocking')
}
</script>
<p>First paragraph</p>
<script>
  blocking()
</script>
<p>Second paragraph</p>
&#13;
&#13;
&#13;

以上示例可能甚至不适用于所有浏览器。在Firefox中,您将看到第一个段落被渲染,然后您获得警报,只有一个您解除警报,渲染继续到第二段。

您可以使用

停止页面的延迟
window.stop();

但你将无法继续加载......

因此,如果您希望仅在执行JavaScript函数时加载正文,则必须将<body>留空,并完全使用JavaScript生成其内容。

&#13;
&#13;
var loadBodyNow = function() {
  var elm = document.createElement('p');
  elm.innerHTML = '<strong>Hello World!</strong>';
  document.body.appendChild(elm)
}

setTimeout(loadBodyNow, 2000);
&#13;
<body>
</body>
&#13;
&#13;
&#13;

另外,您可以使用iframe在需要时加载远程内容,方法是使用JavaScript插入。