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