首先,必须明确导出您的功能
export function greet() { alert("Hello from module"); }
复制
其次,模块有它自己的范围(这是模块的全部意义),因此您需要将函数添加到全局范围。因此,要做到这一点,您必须运行一个脚本来导入该函数并将其添加到窗口对象:
<script type="module"> import { greet } from "./app.js"; window.greetFromModule = greet; </script>
复制
现在你不需要这部分了<script type="module" src="app.js"></script>
或者,您可以创建一个空的 obj 并将您的模块内容添加到其中,这就是它的样子:
<html> <head></head> <body> <button onclick="greetFromHtml();">greetFromHtml</button> <button onclick="module.greet()">greetFromModule</button> <script type="text/javascript"> function greetFromHtml() { alert("Hello"); } const module = {}; </script> <script type="module"> import { greet } from "./app.js"; module.greet = greet; </script> </body> </html>
复制