亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript 類型模塊不執行

JavaScript 類型模塊不執行

ibeautiful 2022-06-05 10:34:03
我有以下html文件:<!DOCTYPE html> <html> <head> </head> <body>     <script type="module">        console.log("test");    </script></body></html>但是,控制臺不會打印任何內容。如果我刪除type="module",它工作得很好。我使用的 Chrome 版本是 58.0.3029.81。我還搜索并測試了我當前的 Chrome 是否支持 ES6。知道為什么嗎?
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

版本 58 不支持它。https://caniuse.com/#search=type%3D%22module%22

但是你可以使用nomodule來兼容它。

nomodule 屬性是一個布爾屬性,可防止腳本在支持模塊腳本的用戶代理中執行。這允許有選擇地執行現代用戶代理中的模塊腳本和舊用戶代理中的經典腳本,如下所示。nomodule 屬性不能在模塊腳本上指定(如果是,將被忽略)。

這是html.spec.whatwg.org的示例

這個例子展示了如何為現代用戶代理包含一個模塊腳本,為舊用戶代理包含一個經典腳本:

<script type="module" src="app.mjs"></script>
<script nomodule defer src="classic-app-bundle.js"></script>

在支持模塊腳本的現代用戶代理中,具有 nomodule 屬性的 script 元素將被忽略,具有“模塊”類型的腳本元素將被獲取并評估(作為模塊腳本)。相反,較舊的用戶代理將忽略具有“模塊”類型的腳本元素,因為這對他們來說是未知的腳本類型——但他們將毫無問題地獲取和評估其他腳本元素(作為經典腳本),因為他們不要實現 nomodule 屬性。

這意味著高于版本 61type=module并且nomodule受支持,則:

  1. 該腳本將在“模塊”類型的腳本元素中執行。

  2. 該腳本不會在屬性為“nomodule”的腳本元素中執行。

并且在低于 60 版本type=modulenomodule不受支持的情況下,則:

  1. 該腳本不會在類型為“模塊”的腳本元素中執行,因為type=module它是瀏覽器的未知腳本類型。

  2. 該腳本將在具有“nomodule”屬性的腳本元素中執行,因為瀏覽器沒有實現“nomodule”屬性。

希望能幫到你。


查看完整回答
反對 回復 2022-06-05
  • 1 回答
  • 0 關注
  • 289 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號