Document: phương thức parseHTML() static

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Phương thức static parseHTML() của đối tượng Document cung cấp một phương thức an toàn XSS để phân tích cú pháp và làm sạch một chuỗi HTML nhằm tạo một instance Document mới.

Cú pháp

js
Document.parseHTML(input)
Document.parseHTML(input, options)

Tham số

input

Một chuỗi xác định HTML cần được làm sạch và tiêm vào shadow root.

options Optional

Một đối tượng tùy chọn với các tham số tùy chọn sau:

sanitizer

Một đối tượng Sanitizer hoặc SanitizerConfig xác định những phần tử nào của đầu vào sẽ được phép hoặc bị xóa, hoặc chuỗi "default" cho cấu hình sanitizer mặc định. Phương thức sẽ xóa bất kỳ phần tử và thuộc tính không an toàn XSS nào, ngay cả khi được sanitizer cho phép. Nếu không được chỉ định, cấu hình Sanitizer mặc định được sử dụng.

Lưu ý rằng nếu bạn đang sử dụng cùng cấu hình nhiều lần, dự kiến sẽ hiệu quả hơn khi sử dụng Sanitizer và sửa đổi nó khi cần.

Giá trị trả về

Một Document.

Ngoại lệ

TypeError

Được ném ra nếu options.sanitizer được truyền một:

Mô tả

Phương thức parseHTML() phân tích cú pháp và làm sạch một chuỗi HTML nhằm tạo một instance Document mới an toàn XSS. Document kết quả sẽ có content type là "text/html", character set là UTF-8 và URL là "about:blank".

Nếu không có sanitizer nào được chỉ định trong tham số options.sanitizer, parseHTML() được sử dụng với cấu hình sanitizer mặc định. Cấu hình này phù hợp cho đa số trường hợp sử dụng vì nó ngăn chặn các cuộc tấn công XSS, cũng như các cuộc tấn công khác như clickjacking hoặc spoofing.

Một Sanitizer hoặc SanitizerConfig tùy chỉnh có thể được chỉ định để chọn phần tử, thuộc tính và chú thích nào được phép hoặc bị xóa. Lưu ý rằng ngay cả khi các tùy chọn không an toàn được sanitizer cho phép, chúng vẫn sẽ bị xóa khi sử dụng phương thức này (nó xóa các phần tử giống như một sanitizer mà Sanitizer.removeUnsafe() đã được gọi).

HTML đầu vào có thể bao gồm declarative shadow roots. Nếu chuỗi HTML định nghĩa nhiều hơn một declarative shadow root trong một shadow host cụ thể thì chỉ ShadowRoot đầu tiên được tạo — các khai báo tiếp theo được phân tích cú pháp dưới dạng các phần tử <template> trong shadow root đó.

parseHTML() nên được sử dụng thay vì Document.parseHTMLUnsafe(), trừ khi có nhu cầu cụ thể để cho phép các phần tử và thuộc tính không an toàn. Nếu HTML cần phân tích cú pháp không cần chứa các thực thể HTML không an toàn, thì bạn nên sử dụng Document.parseHTML().

Lưu ý rằng vì phương thức này luôn làm sạch các chuỗi đầu vào của các thực thể không an toàn XSS, nó không được bảo mật hoặc xác thực bằng cách sử dụng Trusted Types API.

Đặc tả kỹ thuật

Specification
HTML Sanitizer API
# dom-document-parsehtml

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

Xem thêm