Pesquisa de site

Obter URL completo de um hyperlink usando jQuery/JavaScript


Como posso obter a URL completa para a qual um link aponta usando jQuery/JavaScript de forma consistente em todos os navegadores? Por exemplo, quero retornar http://www.mysite.com/mypage.aspx a partir de <a href="../mypage.aspx"></a>.

Eu tentei o seguinte:

  1. $ (this).attr('href'): O problema é que o jQuery retorna o valor exato do href (ou seja, ../mypage.aspx).

  2. this.getAttribute('href'): Isso funciona no Internet Explorer, mas no FireFox comporta-se da mesma forma que acima.

Qual é a alternativa? Não posso simplesmente anexar o caminho do site atual ao valor do href porque isso não funcionaria no caso acima em que o valor do href escapa do diretório atual.

Resposta #1

Você pode criar um elemento img e então definir o atributo src para o valor href recuperado. Então, quando você recuperar o atributo src, ele estará totalmente qualificado. Aqui está uma função de exemplo que eu usei de 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;
}