2011-04-29 50 views
7

在下面的HTML:a.href屬性是否總是以絕對方式返回?

<a id="link" href="page.htm">Page</a> 

我發現document.getElementById("link").href總是返回絕對路徑page.htm,而不是因爲我已經鍵入它的相對路徑。請參閱http://jsfiddle.net/4HgAW/

我可以保證javascript在每個瀏覽器中總是返回絕對路徑嗎?

我問的原因是我抓住http://www....部分來檢查鏈接指向哪個域,我也需要它爲內部鏈接工作。

回答

13

是的,所有相關的瀏覽器都會返回完全限定的URL。

如果你想獲取href屬性(在這種情況下,「page.html中」)的原始值,你可以這樣做:

anchor.getAttribute('href') 

然而,這似乎並沒有在老年工作IE版本(8及以下)。

現場演示:http://jsfiddle.net/simevidas/4HgAW/1/

+2

對於那些使用jQuery:使用'$( '#someAnchor')jQuery的時候也返回原來的'href'屬性值ATTR( 'href' 屬性)'。要從jQuery元素獲取絕對URL,您必須使用'$('#someAnchor')。get()[0] .href'。 – fero 2013-01-16 10:54:21

+2

@fero jQuery爲此提供'.prop('href')',所以你不必做'[0] .href'。順便說一句,你可以直接使用'[0]',即你不需要'.get()'。 – 2013-01-16 18:37:21

+0

我不知道'prop()'。謝謝。但在我的情況下,我需要'get()'從jQuery對象中獲取底層DOM對象。只需'[0]'將返回第一個jQuery對象,而不是由'get()'返回的第一個DOM對象。 – fero 2013-01-17 09:59:24

相關問題