-->

从HTML文本封库DOM节点(Closure library dom node from html

2019-06-27 23:28发布

我有一个HTML文本,如:

'<div class="a"><span>1</span><div>2</div></div>'

是否有封库中的函数来获得这样的字符串作为输入,并返回一个DOM树在文档中插入?

Answer 1:

Closure库提供了函数goog.dom.safeHtmlToNode(html)来创建文档片段( Node从一个) goog.html.SafeHtml对象,可以使用被创建goog.html.sanitizer.HtmlSanitizer如下所示。

<!doctype html>
<html>
<head>
  <title>Closure Library Dom Test</title>
  <script src="https://cdn.rawgit.com/google/closure-library/master/closure/goog/base.js"></script>
  <script>
    goog.require('goog.dom');
    goog.require('goog.html.SafeHtml');
    goog.require('goog.html.sanitizer.HtmlSanitizer');
  </script>
</head>

<body>
<h1>Closure Library Dom Test</h1>

<div id="main">
</div>

<script>
  var sanitizer = new goog.html.sanitizer.HtmlSanitizer.Builder().build();
  var fragment = goog.dom.safeHtmlToNode(
      sanitizer.sanitize('<div class="a"><span>1</span><div>2</div></div>'));

  goog.dom.append(/** @type {!Node} */(document.querySelector('#main')),
      /** @type {!Node} */(fragment));
</script>

</body>
</html>


文章来源: Closure library dom node from html text