是否有可能在文档JavsScript的顶部获得html的第一行

时间:2019-03-15 16:45:55

标签: javascript html dom

是否可以通过JS捕获html文档中的第一行代码(即使这是注释?)。 当我们将html5标语上传到发布商时,它需要在body标签之前的html顶部的注释中具有高度和宽度,如果可以在JS中使用它,这将非常有用。

我在考虑以下方面的事情

function myFunction() {
  var c = document.childNodes;
  var i;
  for (i = 0; i < c.length; i++) {
    store = c[1].textContent.trim();
    console.log(c[0].textContent.trim());
  }
}

和html就是:

<!-- 140x600 -->
<!DOCTYPE html>
<html>
<p>hi</p>
</html>

是否甚至有可能在JS中的html文档的最顶部捕获注释?

欢呼

2 个答案:

答案 0 :(得分:2)

您应该可以通过以下方式获取此信息:

document.firstChild

答案 1 :(得分:1)

我认为在DOM中找到第一条注释(而不是第一行)对您很有帮助(如果我们在这里,这是一个更通用的解决方案)。即使您决定在某个时候精简文档(使文档全部成为一排纸),这也可以使文档正常工作。

您应该使用带有SHOW_COMMENTS过滤器的TreeWalker

var treeWalker = document.createTreeWalker(
  document.documentElement,
  NodeFilter.SHOW_COMMENTS,
  null,
  false
);

let commentData = null;
while (treeWalker.nextNode()){
  // keep only comments
  if (treeWalker.currentNode.nodeType === 8) {
    commentData = treeWalker.currentNode.textContent;
    break;
  }
}

这还支持在DOM中的第一个节点上没有您的特定注释。