2009-10-11 32 views
41

我想寫一個GreaseMonkey腳本,我想在其中找到所有相關鏈接的鏈接。在我看來,這樣做的方式是匹配href的內容與/^https?:///如何在JavaScript中獲得「原始」href內容

但我發現,當我訪問錨點的href屬性時,它總是被標準化或烹製成一個包含「http」的表單。也就是說,如果HTML包含:

<a id="rel" href="/relative/link">inner</a> 

訪問

document.getElementById("rel").href 

回報

http://example.com/relative/link 

如何訪問href屬性中的原始數據?

或者,有沒有更好的方法來找到相關鏈接?

+8

你試過element.getAttribute(「href」)嗎? – 2009-10-11 15:06:56

+0

@Ionut,你爲什麼不把它作爲答案? JP- – James 2009-10-11 15:09:24

+0

J-P,這個問題在開始時有點不清楚。當時我發佈了我的評論,他不清楚他是否嘗試使用'getAttribute'方法或僅僅'href'屬性。 – 2009-10-11 15:10:47

回答

42

改爲嘗試getAttribute method

+1

不幸的是,即使採用這種方法,IE7似乎也會返回完全限定的URL。 – 2010-01-14 21:37:48

24

典型。在發佈問題後,我幾乎立即想到了自己。

代替:

anchor.href 

使用:

anchor.getAttribute("href") 

當然,我花了更長的時間來輸入這個答案不是花了其他人來回答。 (該死,你的人很快。)