javascript - 我的 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
解决方案
感谢@HereticMonkey 和@FelixKling!
window.onload = function() { ... }
确实可以解决我的问题。然而我很困惑为什么 import 是这样设计的。假设我只想在我的脚本中使用一些库,所以我导入它,为什么这使得我的脚本也必须是一个模块?
推荐阅读
- windows - 如何在 Windows bash 中解析值并分配给我的局部变量?
- google-maps-api-3 - “https://maps.googleapis.com/maps/api/js?v=3”在使用的 Google Map API 版本方面的含义
- winapi - 是否可以获得对 SetWindowPos 的调用的来源?
- vue.js - 如何在渲染函数中使用单个文件组件
- swift - 如果在给定的时间间隔内收到来自给定 observable 的新事件,则跳过来自 source observable 的事件
- sql - 使用子查询与变量作为过滤器
- powershell - 脚本频率
- php - PHP包含另一个文件,循环数组并为每条记录运行函数
- azerothcore - 我可以在 AzerothCore 上运行 LUA 脚本吗?
- javascript - 无法在 ejs 模板上显示 json 数据