所以,可以使用:
<html>
<script>
function loadBodyNow(){
....
}
loadBodyNow()
</script>
<body>
Hello world!
</body>
</html>
在页面加载后运行一个函数,但我希望发生相反的情况。
类似的东西:
{{1}}
答案 0 :(得分:0)
不要将脚本标记放在正文后面。将所有脚本标记放在head
元素中,然后执行以下操作:
<script>
window.addEventListener('load', function() {
// body is loaded! execute code here
})
</script>
答案 1 :(得分:0)
加载文档是浏览器的工作,它不需要JavaScript
除非JavaScript以alert()
阻止浏览器,否则浏览器将在收到源时尽可能快地加载HTML。
<script>
var blocking = function() {
alert('blocking')
}
</script>
<p>First paragraph</p>
<script>
blocking()
</script>
<p>Second paragraph</p>
&#13;
以上示例可能甚至不适用于所有浏览器。在Firefox中,您将看到第一个段落被渲染,然后您获得警报,只有一个您解除警报,渲染继续到第二段。
您可以使用
停止页面的延迟window.stop();
但你将无法继续加载......
因此,如果您希望仅在执行JavaScript函数时加载正文,则必须将<body>
留空,并完全使用JavaScript生成其内容。
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;
另外,您可以使用iframe在需要时加载远程内容,方法是使用JavaScript插入。