是否在所有未延迟的javaScript执行完毕后触发Window.load事件?

bbmckpt7  于 2023-06-04  发布在  Java
关注(0)|答案(2)|浏览(191)

Window.load event是否在所有“非延迟JavaScript”执行完毕后触发?“非延迟JavaScript”定义为HTML页面加载的任何JavaScript(内联或外部或异步或动态生成或模块),除了:

  1. onload()事件处理程序中的代码
    1.等待用户输入的任何其他处理程序中的代码
    规范只是简单地说,load事件“在文档完成加载时”触发。它没有说明事件是在所有未延迟的JavaScript完成执行之前还是之后触发的。
    下面的文章是相关的,但不直接回答这个问题。
    谢谢!

相关文章:

wixjitnu

wixjitnu1#

window.onload等待所有外部资源和同步Javascript加载,但它不会等待:
1.异步脚本<script async src="...
1.延迟脚本<script defer src="...
1.模块<script type="module" src="...
1.事件处理程序代码,例如:onload()onclick()。这直到事件发生才执行。
资源:
https://flaviocopes.com/javascript-async-defer/ https://html.spec.whatwg.org/multipage/scripting.html#the-script-element https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event

qyswt5oh

qyswt5oh2#

WHATWG维护HTML生活标准。因此,如果他们说“加载”事件是“当文档加载完毕”时触发的,那么这就是浏览器遵循的行为。脚本不一定在“onload”之前完成。
https://html.spec.whatwg.org/multipage/indices.html#event-load

相关问题