CSSStyleSheet: replace() 方法
CSSStyleSheet 接口的 replace() 方法会异步地用传入的内容替换样式表的现有内容。该方法返回一个解析为 CSSStyleSheet 对象的 Promise。
replace() 和 CSSStyleSheet.replaceSync() 方法只能用于使用 CSSStyleSheet() 构造函数创建的样式表。
语法
js
replace(text)
参数
返回值
一个 Promise,它会解析为 CSSStyleSheet 对象。
异常
NotAllowedErrorDOMException-
在满足以下两种条件之一时抛出
- 样式表不是使用
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 |
浏览器兼容性
加载中…
另见
- 可构造样式表 (web.dev)
- 使用 Shadow DOM