Worklet: addModule() 方法

Baseline 已廣泛支援

此特性已得到良好支援,可在多種裝置和瀏覽器版本上使用。自 2021 年 4 月起,所有瀏覽器均已支援此特性。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

addModule() 方法是 Worklet 介面的一部分,它載入給定 JavaScript 檔案中的模組並將其新增到當前 Worklet

語法

js
addModule(moduleURL)
addModule(moduleURL, options)

引數

moduleURL

一個 String,包含要新增的模組所在的 JavaScript 檔案的 URL。

options 可選

包含以下選項之一的物件:

credentials

一個 Request.credentials 值,指示在載入模組時是否傳送憑據(例如,cookie 和 HTTP 認證)。可以是 "omit""same-origin""include" 之一。預設為 "same-origin"。另請參閱 Request.credentials

返回值

一個 Promise,在給定 URL 的模組新增完成後解析。此 promise 不返回任何值。

異常

如果 addModule() 失敗,它會拒絕 promise,並向拒絕處理程式提供以下錯誤之一。

AbortError DOMException

指定的指令碼無效或無法載入。

SyntaxError DOMException

指定的 moduleURL 無效。

示例

AudioWorklet 示例

js
const audioCtx = new AudioContext();
const audioWorklet = audioCtx.audioWorklet;
audioWorklet.addModule("modules/bypassFilter.js", {
  credentials: "omit",
});

PaintWorklet 示例

js
CSS.paintWorklet.addModule(
  "https://mdn.github.io/houdini-examples/cssPaint/intro/worklets/hilite.js",
);

一旦指令碼被新增到 paint worklet,CSS paint() 函式就可以用來包含由 worklet 建立的影像。

css
@supports (background-image: paint(id)) {
  h1 {
    background-image: paint(hollow-highlights, filled, 3px);
  }
}

規範

規範
HTML
# dom-worklet-addmodule-dev

瀏覽器相容性