从 <script type="text/javascript> 调用

有什么方法可以使用内部声明的<script type="module">函数<script type="text/javascript>?


例如,


<script type="module">

   function do_something(){ ... };

</script>



<script type="text/javascript">

   do_something();

</script>


阿晨1998
浏览 172回答 2
2回答

小唯快跑啊

这是不好的做法您可以显式地将变量设置为全局变量,但模块似乎是异步加载的,因此您需要等到模块被评估。我在这里使用 DOMContentLoaded,但我不知道这是否可靠。<script type="module">&nbsp; function do_something() { console.log("Something"); } window.do_something = do_something;</script><script type="text/javascript">&nbsp; document.addEventListener('DOMContentLoaded', (event) => {&nbsp; &nbsp; do_something();&nbsp; })</script>而不是这样做,您应该首先将您的 JS 设计为不需要全局变量。使用模块作为程序的入口点,而不是非模块。

皈依舞

简短的回答,不(除非你想污染全局命名空间)。MDN模块指南清楚地说明了这一点。最后但同样重要的是,让我们明确一点——模块特性被导入到单个脚本的范围内——它们在全局范围内不可用。因此,您将只能在导入它们的脚本中访问导入的特性,而不能从 JavaScript 控制台访问它们。您仍然会收到 DevTools 中显示的语法错误,但您将无法使用您可能希望使用的一些调试技术。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript