在我的html文档中的body
标签的底部,我有两个带有type="module"
的script标签,在它下面,我有一个script标签,其中嵌入了一些依赖于前两个脚本结果的代码。
有没有办法确保这段代码只在前两个脚本完成后才执行?
<script src="./src/js/script1.js" type="module"></script>
<script src="./src/js/script2.js" type="module"></script>
<script type="text/javascript">
// Code inside this tag should only run after the 2 previous script tags have been executed
console.log('Hello SO');
</script>
3条答案
按热度按时间dgtucam11#
使内联脚本成为模块1,并从那里获得所需的资源
import
:Live example来源
iaqfqrcu2#
您可以利用脚本的加载回调来确保顺序得到维护。
z4iuyo4d3#
带有
type="module"
的<script>
标记会自动指定defer
属性(参见load and execute order of scripts),因此要使第三个标记在后面运行,它也需要延迟。(正如评论中提到的),可以将脚本移动到另一个文件中,并使用src
属性引用它,也可以将代码 Package 在DOMContentLoaded
事件的事件侦听器中(参见https://stackoverflow.com/a/41395202/19461620)使用外部脚本文件:
script.js
使用
DOMContentLoaded
回调: