如何修复"导入声明可能只在顶层"ECMAScript 导入错误



我尝试遵循这篇文章的建议,并尝试使用以下代码使用JS模块导入。

总之,我正在尝试将类从j.js类导入到f.js类中,并在该类的实例上调用函数。

我只是不断收到以下错误。所有文件都位于同一目录中。

Uncaught SyntaxError: import declarations may only appear at top level of a module
Module source URI is not allowed in this document: “file:///C:/Users/thedr/grade-calc/nuncio/j.js”.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///C:/Users/thedr/grade-calc/nuncio/j.js. (Reason: CORS request not http).

.HTML

<html>
<body>
<script>
function f() {
alert("IT WORKS")
}
</script>
<script src="f.js"></script>
<script src="j.js" type="module"></script>
</body>
</html>

F.js

import Fudge from "./j.js"
test = new Fudge();
test.attack();

J.js

export default class Fudge {
constructor() {}
attack() {
f();
}
}

要使其正常工作,您需要做的就是将这两个JS文件标记为index.html文件中的模块,它将正常工作。

<html>
<body>
<script>
function f() {
alert("IT WORKS")
}
</script>
<script src="f.js" type="module"></script>
<script src="j.js" type="module"></script>
</body>

相关内容

  • 没有找到相关文章

最新更新