剛剛意識到默認情況下,DOMParser.parseFromString()在 Quirks 模式下創建檔案。有沒有辦法讓它成為標準模式?
console.log(document.compatMode) // 'CSS1Compat'
const doc = new DOMParser().parseFromString('<div>Hello World</div>', 'text/html');
console.log(doc.compatMode) // 'BackCompat'
uj5u.com熱心網友回復:
您需要做的就是<!DOCTYPE html>在您決議的 HTML 之前添加
DOMParser 將產生以下“檔案”
<html>
<head>
</head>
<body>
<div>Hello World</div>
</body>
</html>
console.log(document.compatMode) // 'CSS1Compat'
const doc = new DOMParser().parseFromString('<!DOCTYPE html><div>Hello World</div>', 'text/html');
console.log(doc.compatMode) // 'BackCompat'
console.log(doc.documentElement.outerHTML)
uj5u.com熱心網友回復:
如果您提供完整的 HTML 標記(包括<!DOCTYPE html>. 如果您只為它提供一個 HTML 片段——比如<div>Hello World</div>——而不是一個完整的頁面,那么引擎將為您創建一個環繞的 doctype 和<html>and <body>,并將采用 quirks 模式。
console.log(document.compatMode);
const doc = new DOMParser().parseFromString(`
<!DOCTYPE html>
<html lang="en">
<body>
<div>Hello World</div>
</body>
</html>
`, 'text/html');
console.log(doc.compatMode);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493190.html
標籤:javascript html dom 解析器
