首页 > 解决方案 > 我的 javascript 模块中的函数未定义

问题描述

我正在为浏览器编写 JavaScript,我的 script.js 有类似的东西

import { foo, bar } from "./lib/sth.js"
function main() { ... }

然后我的浏览器中有这个:

<script type=module src="./script.js"></script>
<body onload="main();"> ... </body>

但它一直给我这个错误:

未捕获的 ReferenceError:主未在 onload 定义((索引):7)

为什么我的 main 现在定义了?在我使用 type=module 之前它工作正常,但是使用 import 语句,我相信它必须是 type=module

标签: javascript

解决方案


感谢@HereticMonkey 和@FelixKling!

window.onload = function() { ... } 

确实可以解决我的问题。然而我很困惑为什么 import 是这样设计的。假设我只想在我的脚本中使用一些库,所以我导入它,为什么这使得我的脚本也必须是一个模块?


推荐阅读