我曾经有一个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
但似乎不起作用...
type
"module"
的脚本是 defer
red automatically,这意味着它们在 DOM 完全加载后就已经执行了。您不需要自己做任何事情来达到这个效果。
因此只需删除
DOMContentLoaded
事件注册并立即调用处理程序即可。