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

js
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ử.

namespace Optional

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 elements và phần tử đã bị bỏ qua (không cần xóa)
  • thay vào đó định nghĩa mảng removeElements và 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><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><span> vào danh sách removeElements trong cấu hình. Lưu ý rằng việc thêm <script><span> xóa các phần tử khỏi danh sách gốc của chúng.

js
// 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

Tương thích trình duyệt