CSSStyleSheet: replace() 方法

Baseline 已廣泛支援

此功能已成熟,並可在許多裝置和瀏覽器版本上執行。自 2023 年 3 月以來,它已在各種瀏覽器中可用。

CSSStyleSheet 介面的 replace() 方法會非同步地用傳入的內容替換樣式表的現有內容。該方法返回一個解析為 CSSStyleSheet 物件的 Promise。

replace()CSSStyleSheet.replaceSync() 方法只能用於使用 CSSStyleSheet() 建構函式建立的樣式表。

語法

js
replace(text)

引數

文字

包含用於替換樣式表內容的樣式規則的字串。如果字串不包含可解析的規則列表,則其值將被設定為空字串。

注意: 如果 text 中傳入的任何規則是使用 @import 規則匯入的外部樣式表,這些規則將被移除,並在控制檯中列印一條警告。

返回值

一個 Promise,它會解析為 CSSStyleSheet 物件。

異常

NotAllowedError DOMException

在滿足以下兩種條件之一時丟擲

  • 樣式表不是使用 CSSStyleSheet() 建構函式建立的。
  • 樣式表被標記為不可修改。

示例

在下面的示例中,建立了一個新的樣式表,並使用 replace() 添加了兩條 CSS 規則。然後,第一條規則被列印到控制檯,輸出結果為:body { font-size: 1.4em; }

js
const stylesheet = new CSSStyleSheet();

stylesheet
  .replace("body { font-size: 1.4em; } p { color: red; }")
  .then(() => {
    console.log(stylesheet.cssRules[0].cssText);
  })
  .catch((err) => {
    console.error("Failed to replace styles:", err);
  });

規範

規範
CSS 物件模型 (CSSOM)
# dom-cssstylesheet-replace

瀏覽器相容性

另見