2009-10-11 80 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") 

当然,我花了更长的时间来输入这个答案不是花了其他人来回答。 (该死,你的人很快。)