首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ES2015导入在火狐中不起作用(即使是在顶层)

ES2015导入在火狐中不起作用(即使是在顶层)
EN

Stack Overflow用户
提问于 2016-06-04 07:27:09
回答 3查看 83.4K关注 0票数 114

以下是我的示例文件:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <title>Test</title>
  <script src="t1.js"></script>
</head>
<body></body>
</html>

t1.js:

代码语言:javascript
复制
import Test from 't2.js';

t2.js:

代码语言:javascript
复制
export const Test = console.log("Hello world");

当我在Firefox46中加载页面时,它返回"SyntaxError:导入声明可能只出现在模块的顶层“--但我不确定导入语句在这里还能达到多少顶层。这个错误是不是在转移注意力,是否还不支持导入/导出?

EN

回答 3

Stack Overflow用户

发布于 2020-02-15 19:42:39

导入文件时使用.js文件扩展名解决了同样的问题(别忘了在脚本标签中设置type="module )。

简单地写下:

代码语言:javascript
复制
import foo from 'foo.js';

而不是

代码语言:javascript
复制
import foo from 'foo';
票数 5
EN

Stack Overflow用户

发布于 2020-09-27 22:49:48

在导入和导出模块的脚本上添加type=module可以解决此问题。

票数 2
EN

Stack Overflow用户

发布于 2020-04-19 18:30:53

为了争论..。

可以向全局窗口对象添加自定义模块接口。不过,不推荐这样做。另一方面,DOM已经损坏,什么也不能保留。我一直使用它来交叉加载动态模块和订阅自定义侦听器。这可能不是一个答案--但它是有效的。堆栈溢出现在有一个module.export,它调用一个名为'Spork‘的事件-至少在刷新之前...

代码语言:javascript
复制
//  spam the global window with a custom method with a private get/set-interface and     error handler... 

window.modules = function(){
  window.exports = {
    get(modName) {
      return window.exports[modName] ? window.exports[modName] : new Error(`ERRMODGLOBALNOTFOUND [${modName}]`)
    },
    set(type, modDeclaration){
      window.exports[type] = window.exports[type] || []
      window.exports[type].push(modDeclaration)

    }
  }

}

//  Call the method
window.modules()

//  assign a custom type and function
window.exports.set('Spork', () => console.log('SporkSporSpork!!!'))


// Give your export a ridiculous event subscription chain type...
const foofaalala = window.exports.get('Spork')

// Iterate and call (for a mock-event chain)
foofaalala.forEach(m => m.apply(this))

//  Show and tell...
window
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37624819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档