我正在尝试进行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值?
答案 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”中获取名称和网址。