我的网页开头如下:
<html>
<head>
<!-- 12036,2011-11-29/11:02 -->
<title>Products & Services</title>
我想在这里抓取12036号码并将其显示在屏幕右下方绝对定位的DIV中。我的目的是要么将它用作书签或Greasemonkey脚本。
这样做的目的是数字代表我们在内部使用引用的PAGE ID。
我开始使用:
var x = document.getElementsByTagName('head').innerHTML;
但我无法继续前进。
有人可以在这里提供帮助吗?
答案 0 :(得分:6)
这适用于最新的浏览器,但您需要修改它以适应旧浏览器......
var commentNode = [].slice.call(document.head.childNodes).filter(function(node) {
return node.nodeType == 8;
})[0],
id = commentNode.data.match(/^\s*(\d+)/)[1];
将它放在屏幕的右下角......
var elem = document.createElement('div');
elem.id = 'id-display';
elem.appendChild(document.createTextNode(id));
document.body.appendChild(elem);
......还有一点CSS ......
#id-display {
position: fixed;
bottom: 0;
right: 0;
background: #333;
color: #fff;
padding: 6px;
}
答案 1 :(得分:2)
您想要选择您正在使用的任何元素,我们称之为var ele;
var div = document.getElementsByTagName('div')[0];
然后你想要获取ele中所有子节点的数组,所以var nodes = div.childNodes;
然后循环遍历它们的节点类型,注释为“8”as per the spec.
for (var i=0; i<nodes.length; i++){
if (nodes[i].nodeType === 8) {
//Only comments go out to console.
console.log(nodes[i]);
}1
}
答案 2 :(得分:1)
getElementsByTagName
返回一个元素数组。在获得innerHTML
或其他任何内容之前,您需要获取该数组中的第一个元素。
document.getElementsByTagName('head')[0].innerHTML
您可能需要考虑使用innerHTML
和循环来查找注释节点,而不是使用.childNodes
。