Al instalar el código de seguimiento de Google Analytics sólo podemos seguir el rastro de las páginas que lo contengan. Entonces, qué hacemos si además nos interesa información cómo “cuantas veces se ha visto un determido PDF”.
La solución es bien sencilla y basta con echarle un vistazo a la documento de Google Analytics.
<a onclick="pageTracker._trackPageview('/pdf/ejemplo1.pdf')" href="/pdf/ejemplo1.pdf" target="_blank">
De esta manera, cada vez que alguien haga click en el enlace se añadira una visita a la “página virtual” con URL “/pdf/ejemplo1.pdf”.
En caso de que tengamos más de un PDF (o documento de otro tipo: word, txt, imagen, …) del que nos guste que haya un seguimiento, el código anterior puede resultar muy tedioso (además de poco aconsejable). Gracias a jQuery la solución es bien sencilla:
<script type="text/javascript" >
$(document).ready(function(){
$('a[rel=track]').click(function(){
pageTracker._trackPageview($(this).attr('href'));
});
});
</script>
sustityendo el código del enlace anterior por
<a rel="track" href="/pdf/ejemplo1.pdf" target="_blank">
Supongo que no seré el único que trabaja por “comparación”, esto es, vemos un trozo de código ya escrito, lo intentamos entender y si resuelve nuestro problemas no nos preocupamos de ver si existe más o mejores formas de usarlo. Y por supuesto, no le echamos un vistazo a la documentación, bahh! eso es muy aburrido,
.
Esto mismo me ocurría con la función $() de jQuery, pensaba que sólo valía para buscar elementos del DOM. Sabía de oidas que podía admitir un segundo argumento, pero tampoco le hice mucho caso … hasta que cayó en mis manos la guía de referencia de jQuery y me dediqué a ojearla por las noches antes de dormir.
Descubrí que efectivamente había un segundo argumento, el selector de contexto, que basicamente obligaba a buscar los elementos del primer argumento en el segundo, en lugar del DOM completo. Es más, hubo un párrafo que llamo mi atención,
El selector de contexto es muy también para documentos XML, aunque estos no forme parten del árbol DOM
Así que me puse a darle vueltas como podría hacer un pequeño experimento para asegurarme de que, efectivamente, se puede parsear un XML con la función dólar $(). He aquí el resultado:
var my_xml = "<root>
<item>texto 1</item>
<item>texto 2</item>
</root>";
$("item:first",my_xml).text(); // texto 1
Por supuesto, se podía había haber utilizado un XML más complejo, y unos selectores que devolviese algún array, pero la única intención es “ampliar miras” y ver esto como una herramienta útil a la hora de parsear XML que provengan de una respuesta AJAX o de conectarse a una API externa.
2009-06-16 (Tue) 18:20 | Posted in jquery | Javi