0

我正在尝试制作 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">​&lt;/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 值?

4

1 回答 1

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”中获取名称和 URL。

于 2013-03-30T13:58:51.147 回答