【发布时间】:2020-11-29 15:50:49
【问题描述】:
我有 JavaScript modules,我想在 IE11 中使用它。
在 HTML 页面中,它们是这样引用的:
<script type="module">
import * as mystuff from './scripts/mystuff.js'; window.mystuff = mystuff
</script>
它们在 Internet Explorer 11 中不起作用,但我无法将模块更改为普通脚本(因为它们是由 Transcrypt 生成的)。我怎样才能让它们与 IE 一起工作? <script type="module"> 结构是否存在 polyfill 或类似的东西?
【问题讨论】:
-
它可能会发生冲突,但您可以考虑将所有脚本合并到单个页面
-
@hosseinsedighian 你的意思是使用捆绑器?不能这样做:我们的项目是一个遗留项目,JavaScript 源代码需要保持原样。但如果可能的话,我可以添加一个将模块功能移植到 IE 的脚本。
-
在您之前的评论中,您提到可以添加一个脚本,将模块功能移植到 IE。我建议尝试使用JS代码来识别IE浏览器并尝试加载脚本。如果浏览器不同,那么您可以运行正常代码。这种方法可以帮助解决 IE 浏览器的问题。你可以尝试参考这个example。让我们知道建议的方法是否适合您。
-
感谢@Deepak-MSFT 的参与!确定我是否在 IE 中是不够的:我需要以某种方式将模块 convert 转换为脚本。到目前为止我尝试了 rollup.js,但没有成功,因为
document全局变量在汇总代码中似乎不正确。 -
在我的搜索结果中,我找到了ES Module Loader Polyfill。您可以尝试检查和测试它可能会帮助您加载脚本。
标签: javascript internet-explorer module internet-explorer-11 transcrypt