一尘不染

ES2015导入在Firefox中不起作用(即使在顶级)

javascript

这些是我的示例文件:

<!DOCTYPE html>
<html>
<head>
  <title>Test</title>
  <script src="t1.js"></script>
</head>
<body></body>
</html>

t1.js:

import Test from 't2.js';

t2.js:

export const Test = console.log("Hello world");

当我在Firefox 46中加载页面时,它返回“ SyntaxError:导入声明可能仅出现在模块的顶层”
–但是我不确定import语句可以在此处获得多少顶层。此错误是红色鲱鱼吗,并且尚不支持导入/导出吗?


阅读 292

收藏
2020-05-01

共1个答案

一尘不染

实际上,您得到的错误是因为您需要明确声明您正在加载模块-只有这样,才允许使用模块:

<script src="t1.js" type="module"></script>

。推荐阅读。

这些浏览器版本(及更高版本;在caniuse.com上的完整列表)完全受支持:

  • Firefox 60
  • Chrome (desktop) 65
  • Chrome (android) 66
  • Safari 1.1

在较旧的浏览器中,您可能需要在浏览器中启用一些标志:

  • Chrome Canary 60 –中的实验性Web平台标记后面chrome:flags
  • Firefox 54 –中的dom.moduleScripts.enabled设置about:config
  • Edge 15 –在中的“实验JavaScript功能”设置之后about:flags
2020-05-01