为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿晨1998 2022-06-09 18:23:08
有什么方法可以使用内部声明的<script type="module">函数<script type="text/javascript>?例如,<script type="module">   function do_something(){ ... };</script><script type="text/javascript">   do_something();</script>
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

这是不好的做法


您可以显式地将变量设置为全局变量,但模块似乎是异步加载的,因此您需要等到模块被评估。


我在这里使用 DOMContentLoaded,但我不知道这是否可靠。


<script type="module">

  function do_something() { console.log("Something"); } window.do_something = do_something;

</script>


<script type="text/javascript">

  document.addEventListener('DOMContentLoaded', (event) => {

    do_something();

  })

</script>


而不是这样做,您应该首先将您的 JS 设计为不需要全局变量。


使用模块作为程序的入口点,而不是非模块。


查看完整回答
反对 回复 2022-06-09
?
皈依舞

TA贡献1851条经验 获得超3个赞

简短的回答,不(除非你想污染全局命名空间)。

MDN模块指南清楚地说明了这一点。

最后但同样重要的是,让我们明确一点——模块特性被导入到单个脚本的范围内——它们在全局范围内不可用。因此,您将只能在导入它们的脚本中访问导入的特性,而不能从 JavaScript 控制台访问它们。您仍然会收到 DevTools 中显示的语法错误,但您将无法使用您可能希望使用的一些调试技术。


查看完整回答
反对 回复 2022-06-09
  • 2 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号