2011-05-12 22 views
15

Estoy construyendo un sitio web internamente y la página tiene una URL canonical establecida en el <head> que especifica la URL de la página externamente.Obtención de la URL canónica usando JavaScript

¿Hay alguna forma de usar JavaScript para obtener la URL canónica?

+2

Tipo señor, por favor proporcione un ejemplo HTML para que podamos ayudarlo mejor. – pixelbobby

Respuesta

15

¿Algo como esto?

<!DOCTYPE html> 
<html> 
    <head> 
     <link href="http://www.example.com/" rel="canonical" /> 
     <title>Canonical</title> 
     <script type="text/javascript"> 
      window.onload = function() { 
       var canonical = ""; 
       var links = document.getElementsByTagName("link"); 
       for (var i = 0; i < links.length; i ++) { 
        if (links[i].getAttribute("rel") === "canonical") { 
         canonical = links[i].getAttribute("href") 
        } 
       } 
       alert(canonical); 
      }; 
     </script> 
    </head> 
    <body> 
     <h1>Canonical</h1> 
    </body> 
</html> 
+0

¡Muchas gracias! – Tereno

38

bien hoy en día se puede simplemente usar:

document.querySelector("link[rel='canonical']").getAttribute("href"); 

El answear anterior le dará verdadero valor de atributo href. Por lo tanto, le mostrará href como /query.html si no tiene una URL completa.

Pero .href método le dará siempre la URL completa con el dominio como http://example.com/query.html:

document.querySelector("link[rel='canonical']").href; 
+0

Es cierto o jQuery. :-) –

+4

Sí. Pero agregar 90kB de jquery para obtener algo así de simple no es una buena opción. Imvho :-) –

+1

De acuerdo, pero si uno decide usar jQuery de todos modos, también es útil para esos selectores. –

16

versión de jQuery;

$("link[rel='canonical']").attr("href") 
Cuestiones relacionadas