脚本上的"加载"事件具有异步和/或延迟

alm*_*now 14 html javascript html5

嵌入脚本时:

<script src="..." async defer></script>
Run Code Online (Sandbox Code Playgroud)

有没有办法知道他们什么时候装完?

通常在window.load调用事件时,人们会希望所有脚本都准备就绪.但我不知道当你用async或加载它们时是否仍然存在defer.我在线阅读了一些文档,但在这个问题上找不到任何结论.

Dan*_*ram 24

您可以利用onloadevent属性,以便在加载脚本后执行某种回调.

在此示例中,只需在脚本加载完成后提醒用户.

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" async defer onload="alert('resource loaded');">
Run Code Online (Sandbox Code Playgroud)


编辑:最初从评论中添加重要信息.

window.onload在触发前等待加载所有内容,而document.onload在DOM准备好时触发.因此,如果您有异步脚本document.onload将首先执行而window.onload将等待.因此,window.onload将异步脚本考虑在内.

  • window.onload在触发前等待加载所有内容,而在DOM准备好时会触发document.onload.因此,如果您有异步脚本,document.onload将首先执行,而window.onload将等待.所以window.onload会考虑asyncscripts (9认同)