簡體   English   中英

在瀏覽器中,未執行從ES6模塊導入的JS代碼

[英]In browser JS code that imports from ES6 module is not executed

我有一個ES6模塊(mymodule)和HTML頁面,該頁面具有當用戶打開頁面時必須執行的JS代碼。 這是我的模塊:

//mymodule.js
class TestClass {

    getString() {
        return "TestString";
    }
}
export {TestClass}

這是我的頁面:

//page.html
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Page</title>
        <script src="./mymodule.js" type="module"></script>
    </head>
    <body>
        <h1>Hello World!</h1>
        <script type="module">
            import {TestClass} from "./mymodule";
            let test = new TestClass();                 
            console.log("OUTPUT: " + test.getString());
        </script>
    </body>
</html>

Page.html和mymodule.js位於同一文件夾中,但是,當我在瀏覽器中打開page.html時,控制台上沒有任何內容(無錯誤,無輸出)-我使用FF 62.0.3。 如何解決?

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

以上是不需要的。 您可以刪除它。

 import {TestClass} from "./mymodule"; 

瀏覽器不像Node.js那樣執行文件擴展名解析。 (它們不能,因為它們處理URL而不是文件系統,因此無法獲取目錄中的文件列表)。

您需要使用以下網址明確顯示:

import {TestClass} from "./mymodule.js";

注意:您還需要通過HTTP而不是從本地文件系統加載page.html

您可以將您的課程導出為默認關鍵字。

class TestClass {
    getString() {
        return "TestString";
    }
}
export default {TestClass}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM