2011-11-28 143 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