Sanitizer: phương thức removeElement()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức removeElement() của giao diện Sanitizer đặt phần tử được chỉ định để bị xóa khỏi đầu ra khi bộ làm sạch được dùng.
Phương thức có thể được dùng với cấu hình cho phép hoặc cấu hình xóa.
Nếu dùng với cấu hình xóa, phần tử được chỉ định sẽ được thêm vào mảng removeElements.
Nếu dùng với cấu hình cho phép, phần tử sẽ bị xóa khỏi mảng elements (nếu có).
Cú pháp
removeElement(element)
Tham số
element-
Một chuỗi cho biết tên của phần tử không được phép, hoặc một đối tượng với các thuộc tính sau:
name-
Một chuỗi chứa tên của phần tử.
namespaceOptional-
Một chuỗi chứa không gian tên của phần tử. Không gian tên mặc định là
"http://www.w3.org/1999/xhtml".
Giá trị trả về
true nếu thao tác thay đổi cấu hình để không cho phép phần tử, và false nếu phần tử đã bị cấm.
Lưu ý rằng false có thể được trả về nếu cấu hình nội bộ:
- định nghĩa mảng
elementsvà phần tử đã bị bỏ qua (không cần xóa) - thay vào đó định nghĩa mảng
removeElementsvà phần tử được chỉ định đã có mặt (và do đó đã bị lọc)
Ví dụ
>Cách không cho phép các phần tử
Ví dụ này cho thấy cách removeElement() được dùng để chỉ định phần tử cần "bị cấm".
JavaScript
Mã trước tiên tạo một đối tượng Sanitizer mới ban đầu cho phép các phần tử <div> và <script>, và thay thế các phần tử <span> bằng các phần tử con của chúng.
Mã sau đó gọi removeElement() để thêm các phần tử <p>, <script> và <span> vào danh sách removeElements trong cấu hình.
Lưu ý rằng việc thêm <script> và <span> xóa các phần tử khỏi danh sách gốc của chúng.
// Tạo bộ làm sạch sử dụng SanitizerConfig
const sanitizer = new Sanitizer({
elements: ["div", "script"],
replaceWithChildrenElements: ["span"],
});
// Không cho phép phần tử <p>
sanitizer.removeElement("p");
// Không cho phép phần tử <script>
sanitizer.removeElement("script");
// Không cho phép phần tử <span>
sanitizer.removeElement("span");
// Ghi nhật ký cấu hình bộ làm sạch
let sanitizerConfig = sanitizer.get();
log(JSON.stringify(sanitizerConfig, null, 2));
Note:
Cấu hình này chỉ dùng để trình diễn.
Các cấu hình bộ làm sạch chỉ nên bao gồm các phần tử được phép (elements) hoặc chỉ các phần tử bị cấm (removeElements), nhưng không phải cả hai.
Trong trường hợp này chỉ có phần tử <div> được phép và tất cả các phần tử khác sẽ bị xóa khỏi đầu vào: do đó các phần tử bị xóa không có hiệu lực.
Kết quả
Cấu hình cuối cùng được ghi nhật ký bên dưới.
Thông số kỹ thuật
| Specification |
|---|
| HTML Sanitizer API> # dom-sanitizer-removeelement> |