Ogni browser che ho osservato crea un elemento <head>
accessibile nel DOM anche se non ci sono tag espliciti <head></head>
nel markup del documento.Un elemento <head> è sempre disponibile nel DOM, anche se assente nel markup HTML?
Tuttavia, Google Analytics utilizza il seguente codice per l'inserimento di script dinamici:
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();
la seguente riga:
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
sembra fare una concessione speciale per i casi in cui un elemento <head>
non è presente .
Si tratta solo di un caso di estrema retrocompatibilità (ad esempio, per Netscape 4 o simili), o c'è un caso da fare per non assumere che i browser moderni (ad esempio, Internet Explorer 6 e più recenti) avrà sempre accesso ad un elemento <head>
nel DOM?
IE6 e anche IE5.5 aggiungono un elemento 'HEAD' se non è presente, altri browser come Safari <= 4 no, forse anche alcune vecchie versioni di Opera IIRC. – CMS
Grazie, CMS! IE 6 è tanto indietro quanto ho supportato da molto tempo, quindi è logico che mi sia appena abituato al browser aggiungendo un '
' automaticamente. – Bungle