Google Chrome扩展程序:获取页面中的所有链接

时间:2013-03-30 12:48:01

标签: dom google-chrome-extension

我正在尝试进行chrome扩展,可以递归地访问网站并搜索常见的错误消息字符串(如“错误500”等),供Web开发人员测试。

第一步是从活动标签获取所有链接。所以,在我的扩展程序的后台脚本中,我有这段代码:

var $html = jQuery(html);

var links = [];
$html.find('a').each(function(){
    console.log(this);      
    console.log(this.href);
    //links.push(this.href); 
});

但是这个脚本的输出对于相对链接来说很奇怪:

<a href=​"/​" id=​"logo">​</a>​
chrome-extension://kmldadmcjflefibfflbkpmgjdpklghfa/ 

<a href=​"#top">About</a>​
chrome-extension://kmldadmcjflefibfflbkpmgjdpklghfa/background.html#top 

<a href=​"/articles/applications/​1">​Web applications</a>​
chrome-extension://kmldadmcjflefibfflbkpmgjdpklghfa/articles/applications/1 

虽然元素href属性的值为'/',但转储this.href输出'chrome-extension:// kmldadmcjflefibfflbkpmgjdpklghfa /'。

如果没有'chrome-extension:// blahblahblah /',我如何获得链接的href值?

1 个答案:

答案 0 :(得分:1)

您正在解析自己的扩展背景页面。这真的是你想要做的吗?

如果您打算解析另一个页面,请使用“内容脚本”。 这里有详细记载:

http://developer.chrome.com/extensions/content_scripts.html

评论后编辑:

所以你只想摆脱“chrome-extension:// ......”?

var str = 'chrome-extension://kmldadmcjflefibfflbkpmgjdpklghfa/background.html#top';
var out = str.replace('chrome-extension://kmldadmcjflefibfflbkpmgjdpklghfa', '');

或者更好的是,只需从“this”中获取名称和网址。