当页面完全加载时,我需要执行一些JavaScript代码。这包括像图像这样的东西。

我知道您可以检查DOM是否准备好了,但我不知道这是否与页面完全加载时相同。


当前回答

完成@Matchu和@abSiddique的回答。

这样的:

window.addEventListener('load', (event) => {
  console.log('page is fully loaded');
});

与此相同,但使用onload事件处理程序属性:

window.onload = (event) => {
  console.log('page is fully loaded');
};

来源:

https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event

这里有一个活生生的例子:

https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event#live_example

其他回答

在使用现代javascript(>= 2015)的现代浏览器中,您可以在脚本标记中添加type="module",脚本中的所有内容将在整个页面加载后执行。例句:

<script type="module">
  alert("runs after") // Whole page loads before this line execute
</script>
<script>
  alert("runs before")
</script>

旧的浏览器也能理解nomodule属性。就像这样:

<script nomodule>
  alert("tuns after")
</script>

更多信息请访问javascript.info。

这里有一个用PrototypeJS来做的方法:

Event.observe(window, 'load', function(event) {
    // Do stuff
});

Javascript使用onLoad()事件,将等待页面加载之前执行。

<body onload="somecode();" >

如果你正在使用jQuery框架的文档准备函数,代码将在DOM加载时加载,在页面内容加载之前加载:

$(document).ready(function() {
    // jQuery code goes here
});

为了完整起见,您可能还想将它绑定到DOMContentLoaded,现在得到了广泛的支持

document.addEventListener("DOMContentLoaded", function(event){
  // your code here
});

更多信息:https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded

完成@Matchu和@abSiddique的回答。

这样的:

window.addEventListener('load', (event) => {
  console.log('page is fully loaded');
});

与此相同,但使用onload事件处理程序属性:

window.onload = (event) => {
  console.log('page is fully loaded');
};

来源:

https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event

这里有一个活生生的例子:

https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event#live_example