3

我正在开发一个 chrome 扩展程序,它从页面读取 html 注释并将它们呈现在操作弹出窗口中。

<html>但是,我不知道如何(如果可能的话)获取标签前后的一些评论。例如:

<!-- test test test -->
<DOCTYPE html>
<html>
...
</html>

在 jQuery 中,$("html").before()两者$("html").after()都返回与$("html").

是否可以使用 jQuery 或纯 Javascript 获取这些类型的评论?

编辑:带有评论的页面如下所示:

<!-- Comment I'd like to fetch -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us" >
<head>
<title>Featured Designers for WOMEN</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
4

3 回答 3

4

有了这份文件:

<!-- comment 1 -->
<!DOCTYPE html>
<!-- comment 2 -->
<html>
<body>
hello world
</body>
</html>

你会得到这样的第一条评论:

document.firstChild.nodeValue

第二条评论是这样找到的:

document.childNodes[2].nodeValue

要获取下面的所有评论document

var nodes = document.childNodes;
for (var i = 0, len = nodes.length; i !== len; ++i) {
    if (nodes[i].nodeType === 8) {
        console.log('Found comment' + nodes[i].nodeValue);
    }
}
于 2013-02-04T15:20:48.300 回答
0

document.firstChild应该这样做。

于 2013-02-04T14:01:53.623 回答
0

$("html").siblings();这将返回与我相信的 html 标记相同级别的所有 dom 对象元素。我想通过使用 JSfiddle 来确认,但我现在使用 IE8 在他们的网站上收到 Javascript 错误。如果它在您的测试中对您不起作用,我可以稍后回家确认。

于 2013-02-04T14:56:18.680 回答