javascript - 动态模块加载在 Firefox 上不起作用 - 语法错误:未实现动态模块导入
问题描述
我尝试在 Firefox(OS X 10.14.3 上的版本 66.0.2(64 位))上动态加载模块但没有成功。
我收到以下错误:
SyntaxError:未实现动态模块导入
它在谷歌浏览器上运行良好。
index.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dynamic module test</title>
<meta charset="utf-8">
</head>
<body>
<p>Test</p>
<script async="" type="module" src="module.js"></script>
<script type="module" src="main.js" ></script>
</body>
</html>
main.js
:
let main = ()=> {
import('./module.js').then((loadedModule) => {
console.log('module loaded')
if(loadedModule.activate) {
loadedModule.activate()
}
})
.catch((error) => {
console.log(error)
});
}
document.addEventListener("DOMContentLoaded", main)
module.js
:
export function activate() {
console.log('activate module')
}
我制作了一个示例项目,您可以下载导出到 .zip(文件 > 导出到 ZIP)。
由于到目前为止我还没有答案,我在 bugzilla 上做了一个错误报告。
解决方案
在 Firefox 中,您可以更改about:config中的首选项以加载动态模块:
javascript.options.dynamicImport
如评论中所述,FF 67+ 应该解决这个问题。如果您使用 Firefox 开发者版,它也无需任何更改即可工作。
推荐阅读
- python - Python:列表项集合的所有可能组合
- javascript - Jquery z-index or focus/active bug
- python - 编写python类型注解时处理79个字符的限制
- ios - 用于 iOS 中文本检测的 Firebase MLKit 错误
- tensorflow - 在 Keras 丢失中保护 Tensorflow acos 函数免受 nans 的影响
- angular - 在 Angular 应用中显示非英文文本
- java - 在android中创建HBox或VBox
- jquery - 如何在没有 sinon 的情况下在 Jquery 中测试 ajax 调用
- android - Android TV - 我可以在 BrandedSupportFragment 中更改 android 电视上可绘制徽章的位置吗?
- html - 我应该改成?