Window.load event是否在所有“非延迟JavaScript”执行完毕后触发?“非延迟JavaScript”定义为HTML页面加载的任何JavaScript(内联或外部或异步或动态生成或模块),除了:
- onload()事件处理程序中的代码
1.等待用户输入的任何其他处理程序中的代码
规范只是简单地说,load事件“在文档完成加载时”触发。它没有说明事件是在所有未延迟的JavaScript完成执行之前还是之后触发的。
下面的文章是相关的,但不直接回答这个问题。
谢谢!
Window.load event是否在所有“非延迟JavaScript”执行完毕后触发?“非延迟JavaScript”定义为HTML页面加载的任何JavaScript(内联或外部或异步或动态生成或模块),除了:
2条答案
按热度按时间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
qyswt5oh2#
WHATWG维护HTML生活标准。因此,如果他们说“加载”事件是“当文档加载完毕”时触发的,那么这就是浏览器遵循的行为。脚本不一定在“onload”之前完成。
https://html.spec.whatwg.org/multipage/indices.html#event-load