模块/DOMContentLoaded事件难题

问题描述 投票:0回答:1

我曾经有一个js脚本,它以

text/javascript
类型导入到html中。我们就叫它吧
main.js
我使用了
DOMContentLoaded
事件侦听器,以便在加载页面时,我们将运行脚本。

现在我需要更多功能,我必须创建一些模块以避免将所有模块放入一个大文件中。 要将 javascript 函数导入到

main.js
,必须将
main.js
作为类型模块导入到 html 中。

但是,这使得

DOMContentLoaded
事件侦听器永远不会被触发...

我搜索了一下,在MDN参考资料中

The DOMContentLoaded event fires when the HTML document has been completely parsed, and all deferred scripts (<script defer src="…"> and <script type="module">) have downloaded and executed.

我认为这解释了为什么它永远不会在类型模块内被触发。

现在,我正在寻找替代活动...我已经尝试过

load
但似乎不起作用...

javascript es6-modules script-tag domcontentloaded
1个回答
0
投票

type
"module"
的脚本是
defer
red
automatically,这意味着它们在 DOM 完全加载后就已经执行了。您不需要自己做任何事情来达到这个效果。

因此只需删除

DOMContentLoaded
事件注册并立即调用处理程序即可。

© www.soinside.com 2019 - 2024. All rights reserved.