首先,必须明确导出您的功能
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>