Javascript从评论的html中提取内容

Javascript从评论的html中提取内容

作为 JS 新手,我有一个跟踪脚本,它读取页面的元数据并使用以下命令将正确的脚本放置在该页面上:

var element = document.querySelector('meta[name="tracking-title"]');
var content = element && element.getAttribute("content");
console.log(content)

这显然将正确的标签发布到控制台,因此我可以确保它正常工作......并且在测试情况下确实如此。但是,在实际网站上,我所针对的元数据是由 Java 应用程序在页面上生成的,超出了我的控制范围,问题是它位于注释掉的区域中。此脚本无法在注释掉的区域内读取。 IE
<!-- your tracking meta is here
<meta name="tracking-title" content="this-is-the-first-page">
Tracking finished -->

任何想法表示赞赏。

最佳答案

您可以使用此代码:

var html = document.querySelector('html');
var content;
function traverse(node) {
  if (node.nodeType == 8) { // comment
    var text = node.textContent.replace(/<!--|-->/g, '');
    var frag = document.createDocumentFragment();
    var div = document.createElement('div');
    frag.appendChild(div);
    div.innerHTML = text;
    var element = div.querySelector('meta[name="tracking-title"]');
    if (element) {
      content = element.getAttribute("content");
    }
  }
  var children = node.childNodes;
  if (children.length) {
    for (var i = 0; i < children.length; i++) {
      traverse(children[i]);
    }
  }
}
traverse(html);

关于Javascript从评论的html中提取内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34002876/

10-11 13:42