我正在試圖製作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擴展名:// kmldadmcjflefibfflbkpmgjdpklghfa /'。
如何在沒有'chrome-extension:// blahblahblah /'的情況下獲得鏈接的href值?
通過使用$(this).attr('href')'或'this.getAttribute('href')'而不是'this.href'來讀取屬性而不是解析的'href'。 –
Rob W:非常感謝!我不知道爲什麼'$(this).attr('href')'工作並且'this.href'沒有,但它解決了我的問題:-) – nanuqcz
因爲'this.href'是一個屬性,它返回解析後的URL,'.attr'或'.getAttribute'返回元素上設置的屬性。 –