Chrome浏览器扩展程序可检测页面中的主题标签

时间:2011-05-22 15:13:33

标签: javascript jquery google-chrome-extension

作为个人项目,我想构建一个Chrome扩展程序,它可以在页面上找到所有主题标签。我对JS或jquery不太了解,所以我想知道我该如何处理这个问题?

编辑: Chrome扩展程序在页面加载后注入javascript,但我需要扫描整个文档以获取主题标签。正在查看整个文档,我不知道该怎么做。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的意思是简单地使用带有#的href的锚标签,那么:

var aTags = document.getElementsByTagName("a");
for(var index = 0; index < aTags.length; index++){
    if(aTags[index].href.indexOf("#") != -1){
        alert("found one");
    }
}

或者如果你想要更通用的东西,只需一种方法来返回整个网页:

document.body.innerHTML  //A string containing all the code/text inside the body of the webpage.

然后你可以做一些indexOf或正则表达式搜索/替换,具体取决于你想要做什么。

但是如果你知道你正在寻找的主题标签总是在某个容器中,比如一个锚点,或者甚至只是一个特定类的div,那么我会选择使用它而不是使用整个页面。以下是解析网页的有用方法列表:

document.getElementsByTagName("a");  //already mentioned
document.getElementsById("id");
document.getElementsByName("name");
//and a custom function to get elements by class name(I did  not write this)
function getElementsByClass(searchClass, domNode, tagName)
{ 
if (domNode == null) domNode = document;
if (tagName == null) tagName = '*';
var el = new Array();
var tags = domNode.getElementsByTagName(tagName);
var tcl = " "+searchClass+" ";
for(i=0,j=0; i<tags.length; i++)
{ 
    var test = " " + tags[i].className + " ";
    if (test.indexOf(tcl) != -1)
    {
        el[j++] = tags[i];
    }
} 
return el;
}