2011-11-28 148 views
6

如何檢索錨鏈接在所有瀏覽器中始終如一使用jQuery/JavaScript進行鏈接的完整URL?例如,我想從<a href="../mypage.aspx"></a>返回http://www.mysite.com/mypage.aspx使用jQuery/JavaScript從超鏈接獲取完整URL

我曾嘗試以下:

  1. $(this).attr('href'):問題是,jQuery的返回HREF(即,../mypage.aspx)的精確值。

  2. this.getAttribute('href'):這適用於Internet Explorer,但在FireFox中的行爲與上述相同。

什麼是替代方案?我不能簡單地將當前網站的路徑附加到href值,因爲在上述href的值轉義當前目錄的情況下,這不起作用。

+0

http://stackoverflow.com/questions/303956/jquery-select-a-which-href-contains-some-string –

+0

的可能重複你可能要檢查這個問題http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue –

+1

@sputnick,它絕對不是重複的。這看起來像表面上基本的n00bert url propery問題,但它稍微複雜一些。 –

回答

5

您可以創建一個img元素,然後將src屬性設置爲檢索到的href值。然後,當您檢索src屬性時,它將被完全限定。下面是我從http://james.padolsey.com/javascript/getting-a-fully-qualified-url/使用的例子功能:

function qualifyURL(url){ 
    var img = document.createElement('img'); 
    img.src = url; // set string url 
    url = img.src; // get qualified url 
    img.src = null; // no server request 
    return url; 
} 
+0

爲了澄清,這適用於我測試過的每個瀏覽器:IE 6-9,Chrome,FireFox和Safari。 –

+1

請注意,至少在Chrome中,這*將導致服務器請求該URL。 – user113215