簡體   English   中英

無法從作為類型模塊導入的 js 文件中調用函數

[英]Can't call a function from js file imported as type module

我正在使用模塊導入在 ES6 中編寫我的 Javascript 文件。 現在大多數現代瀏覽器都支持使用 type='module' 以允許正確解析導入語句。 腳本類型="模塊https://caniuse.com/#feat=es6-module

我構建了一個 HTML 選擇元素,onchange() 使用 select onchange="someFunction()" 從我的一個模塊文件調用一個函數,但總是拋出一個錯誤,說當 on change 事件發生時該函數未定義。 我內聯測試了相同的函數,並且沒有使用 type="module" 沒有預期的問題。

這是一個錯誤嗎? 它是否與默認情況下延遲的模塊腳本有關? 我錯過了一些簡單的東西嗎?

我知道我可以通過使用 Webpack 或框架來避免這個問題,但我真的想嘗試只使用 vanilla javascript 而沒有任何額外的東西。 我相信在 js 中創建這個 select 元素然后附加到 dom 也可以解決這個問題。

模塊不會創建全局變量。 一切都在模塊內。

如果要綁定事件處理程序,請使用addEventListener從模塊內部執行此操作,而不使用onXxxxx屬性。

當使用帶有類型模塊的腳本時,您可以使用它來使用函數

            <button onclick="import('/modules/script.js').then(o=> o.showdialog())">

並在 script.js 中使用導出

export function showdialog() {}

暫無
暫無

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

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