使用浏览器的解析器可能是当前浏览器中最好的选择。以下将起作用,但有以下警告:
- 您的HTML在一个
<div>
元素内有效。HTML包含在<body>
或<html>
或<head>
标签无效内的<div>
,因此可能无法正确解析。 textContent
(DOM标准属性)和innerText
(非标准)属性不相同。例如,textContent
将在<script>
元素内包含文本,而在元素内innerText
则不(在大多数浏览器中)。这只会影响IE <= 8,这是唯一不支持的主要浏览器textContent
。- HTML不包含
<script>
元素。 - HTML不是
null
- HTML来自受信任的来源。将其与任意HTML结合使用可以执行任意不受信任的Javascript。此示例来自Mike Samuel对重复问题的评论:
<img onerror='alert("could run arbitrary JS here")' src=https://www.mshxw.com/skin/sinaskin/image/nopic.gif>
码:
var html = "<p>Some HTML</p>";var div = document.createElement("div");div.innerHTML = html;var text = div.textContent || div.innerText || "";


