2011-11-28 25 views
6

¿Cómo puedo recuperar la URL completa a la cual un ancla vincula usando jQuery/JavaScript consistentemente en todos los navegadores? Por ejemplo, quiero devolver http://www.mysite.com/mypage.aspx desde <a href="../mypage.aspx"></a>.Obtenga la URL completa de un hipervínculo usando jQuery/JavaScript

I han intentado el siguiente:

  1. $(this).attr('href'): El problema es que jQuery devuelve el valor exacto de la href (es decir, ../mypage.aspx).

  2. this.getAttribute('href'): Esto funciona en Internet Explorer, pero en Firefox se comporta de la misma manera que la anterior.

¿Cuál es la alternativa? No puedo simplemente agregar la ruta del sitio actual al valor de href porque eso no funcionaría en el caso anterior en el que el valor de href escapa del directorio actual.

+0

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

+0

Usted Puede que desee verificar esta pregunta http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue –

+1

@sputnick, definitivamente no es un duplicado de eso. Esta parece ser tu pregunta básica sobre la URL de n00bert en la superficie, pero es un poco más complicada. –

Respuesta

5

Puede crear un elemento img y luego establecer el atributo src en el valor href recuperado. Luego, cuando recupere el atributo src, estará completamente calificado. Aquí es una función de ejemplo que he utilizado desde 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

Para aclarar, esto funciona en todos los navegadores que he probado: IE 6-9, Chrome, Firefox y Safari. –

+1

Tenga en cuenta que, al menos en Chrome, esto * * causará una solicitud del servidor para la URL. – user113215

Cuestiones relacionadas