一尘不染

如何从JavaScript中的字符串中剥离HTML标签?

javascript

如何从JavaScript中的字符串中剥离HTML?


阅读 281

收藏
2020-04-25

共1个答案

一尘不染

使用浏览器的解析器可能是当前浏览器中最好的选择。以下将起作用,但有以下警告:

  • 您的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=bogus>

码:

var html = "<p>Some HTML</p>";
var div = document.createElement("div");
div.innerHTML = html;
var text = div.textContent || div.innerText || "";
2020-04-25