网站搜索

使用 jQuery/JavaScript 从超链接获取完整 URL


如何使用 jQuery/JavaScript 在所有浏览器中一致地获取锚点链接的完整 URL?例如,我想从 <a href="../mypage.aspx"></a> 中返回 http://www.mysite.com/mypage.aspx。

我尝试了以下方法:

  1. $ (this).attr('href'):问题在于 jQuery 返回 href 的确切值(即 ../mypage.aspx)。

  2. this.getAttribute('href'):这在 Internet Explorer 中可用,但在 FireFox 中它的表现与上述相同。

有什么替代方法吗?我不能简单地将当前网站的路径附加到 href 值上,因为在上面的情况中,href 的值会跳出当前目录,这样做是行不通的。

答案#1

你可以创建一个 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;
}