Avete recentemente aggiunto alle pagine del vostro
sito il nuovo tracking script di
Google Analytics e come conseguenza se sottoponete le pagine a validazione
xhtml del W3C il sito risulta NON conforme
agli standard xhtml?
Ecco la spiegazione della natura del problema e
la soluzione.
Qualche tempo fa Google ha sostituito il suo codice
tracking Urchin.js con GA.js – che, a detta di Google, promette
statistiche migliori e accesso a nuove proprietà mano a mano che
vengono rese disponibili. Purtroppo il nuovo codice rende la vostra
pagina web non conforme agli standard XHTML e alcuni sostengono non
funzioni con i siti ASP.
Il validatore di codice HTML di
W3C presenta un errore con il seguente
messaggio: document type does not allow element "script" here.
Questo può trarre in inganno in quanto il validatore non si lamenta
dell’ attuale script tag ma di alcuni caratteri contenuti all’
interno del codice Javascript.
Ci son vari modi di risolvere questo
problema, la soluzione che ci sembra più semplice consiste nell’
inserire CDATA tags (evidenziate in rosso nel testo) direttamente
nel tracking code generato da Google.
La versione di GA.js conforme
agli standard XHTML diventa quindi:
<script type="text/javascript">
//<![CDATA[
var gaJsHost = (("https:" == document.location.protocol) ?
"https://ssl." : "http://www."); document.write(unescape("%3Cscript
src='" + gaJsHost + "google-analytics.com/ga.js'
type='text/javascript'%3E%3C/script%3E"));
//]]>
</script>
<script type="text/javascript">
//<!--[CDATA[
var pageTracker = _gat._getTracker("UA-XXXX-XX");
pageTracker._initData(); pageTracker._trackPageview();
//]]-->
</script>
Ovviamente bisogna sostituire "UA-XXXX-XX" con il
vostro tracking code asseganato da Google Analytics.
L’ origine del
problema sta nel fatto che le pagine XHTML si comportano
diversamente dalle pagine HTML. Se inserisci Javascript in una
pagina HTML, il validatore tratta automaticamente tutto quello che
trova dopo la tag script come un CDATA (character data) e lo
ignora. In XHTML, JavaScript è considerate PCDATA (parsed character
data) e quindi viene interpretato.
Inserire le tag CDATA all’
interno del tuo Javascript dice al validatore di ingnorare il codice
e questo vi permetterà di rendere le vostre pagine conformi agli
standard XHTML.