Sanitizer: removeElement() 方法
Sanitizer
接口的 removeElement()
方法会将一个元素设置为不允许 — 在 sanitizer 使用时,该元素将从输入中移除。
指定的元素被添加到此 sanitizer 配置的 removeElements
列表。如果元素存在于 elements
或 replaceWithChildrenElements
列表中,它将被移除。
语法
js
removeElement(element)
参数
element
-
一个表示要禁止的元素名称的字符串,或者一个具有以下属性的对象
name
-
一个包含元素名称的字符串。
namespace
可选-
一个包含元素命名空间的字符串。默认命名空间为
"http://www.w3.org/1999/xhtml"
。
返回值
无 (undefined
)。
示例
如何禁止元素
此示例展示了如何使用 removeElement()
来指定要“禁止”的元素。
JavaScript
代码首先创建一个新的 Sanitizer
对象,该对象最初允许 <div>
和 <script>
元素,并将 <span>
元素替换为其子元素。
然后,代码调用 removeElement()
将 <p>
、<script>
和 <span>
元素添加到配置的 removeElements
列表中。请注意,添加 <script>
和 <span>
会将这些元素从其原始列表中移除。
js
// Create sanitizer using SanitizerConfig
const sanitizer = new Sanitizer({
elements: ["div", "script"],
replaceWithChildrenElements: ["span"],
});
// Disallow the <p> element
sanitizer.removeElement("p");
// Disallow the <script> element
sanitizer.removeElement("script");
// Disallow the <span> element
sanitizer.removeElement("span");
// Log the sanitizer configuration
let sanitizerConfig = sanitizer.get();
log(JSON.stringify(sanitizerConfig, null, 2));
注意:此配置仅为演示目的提供。Sanitizer 配置应仅包含允许的元素(elements
)或仅包含不允许的元素(removeElements
),但不能两者都包含。在此示例中,只允许 <div>
元素,所有其他元素都将被从输入中移除:因此,被移除的元素没有效果。
结果
最终配置将在下方日志中显示。
规范
规范 |
---|
HTML Sanitizer API # dom-sanitizer-removeelement |
浏览器兼容性
加载中…