//a.jslet Bank={ name:"ll" }export default Bank;
//index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <div>abc</div> <script type="module" src="a.js"> //忽略以下代码 console.log(Bank) alert("abc") </script> <script> //正常执行 alert("cd") //报错,提示找不到Bank console.log(Bank) </script></body></html>
代码比较简单。index.html 中 有两个script,第一个script是 模块化引入a.js
第二个script是输出Bank变量。
问题:
(1)第一段script ,script标签中的代码不会执行难,也就是不会alert abc .为什么?
(2)第二段script ,console.log(Bank)提示找不到bank, Bank不是引入了么?
方案一:使用异步加载
可以使用 defer 属性来确保在脚本加载完毕后执行:
<script type="module" src="a.js" defer></script><script> // 这里已经确保 a.js 加载完毕,Bank 可见 console.log(Bank);</script>
方案二:使用事件监听
在模块加载完成后,手动触发一个事件,在事件回调函数中访问 Bank 变量:
<script type="module"> import Bank from './a.js'; window.addEventListener('moduleLoaded', () => { // 这里 a.js 加载完毕,Bank 可见 console.log(Bank); });</script><script type="module" src="a.js" defer onload="dispatchEvent(new Event('moduleLoaded'))"></script>
在非模块脚本中访问模块作用域中的变量,你可以通过将模块中的变量显式导出,并在非模块脚本中使用 import 来引入。这样,你就可以在非模块脚本中访问模块作用域中的变量:
<script type="module" src="a.js"></script><script> // 引入模块中的变量 import Bank from './a.js'; alert("cd"); console.log(Bank);</script>
问题内容: 我已经很长时间没有使用Node.js了,也从未使用过express。当我启动应用程序时,它刚刚返回: 启动test.html时发生错误。这是代码: 我自己的路 : 为什么呢 编辑: 这是我的新app.configure: 但它返回: 问题答案: 我假设test.html是一个静态文件。要渲染静态文件,请像这样使用静态中间件。 这告诉express在应用程序的公共目录中查找静态文件。 指
左侧的 import App from './App.vue' 有红色波浪号 vscode 提示所 Could not find a declaration file for module './App.vue'. '/home/pon/Desktop/code/me/noface/src/App.vue.js' implicitly has an 'any' type.ts(7016) 为什么?
本文向大家介绍Python升级提示Tkinter模块找不到的解决方法,包括了Python升级提示Tkinter模块找不到的解决方法的使用技巧和注意事项,需要的朋友参考一下 一、安装tkinter 在Linux中python默认是不安装Tkinter模块, 我们安装Tkinter模块 二、升级Python Linux的Python版本默认都不叫低 查看Python版本 DOWN新版本 解压安装 看看
问题内容: 我最近在计算机上安装了cx_Oracle模块,以连接到远程Oracle数据库服务器。(我身边没有Oracle客户端)。 Python:2.7 x86版 Oracle:版本11.1.X x64 Cx_Oracle:版本5.1.2-11g.win32-py2.7 然后,每次我运行脚本时,脚本都会失败并显示以下消息: ImportError:DLL加载失败:找不到指定的模块。 我想知道是否我
问题内容: 我有以下目录结构: 我尝试在从server.js导出的app.js中调用函数,我这样做: 但是得到错误: 我如何正确包含它? 谢谢。 问题答案: 该路径必须相对于您当前所在的文件。 用
问题内容: 我收到错误,无法在Node.js应用程序中找到模块“ bcrypt” 我尝试使用 npm install bcrypt 安装它, 但仍然出现问题。 错误信息: 问题答案: 使用命令无法为我解决问题。 我尝试了以下命令,但问题解决了。