Каждый наблюдаемый мной браузер создает элемент <head>
, который доступен в DOM, даже если в разметке документа нет явных тегов <head></head>
.
Однако Google Analytics использует следующий код длядинамическая вставка скрипта:
(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);
})();
Следующая строка:
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
, кажется, делает особую уступку для случаев, когда элемент <head>
отсутствует.
Является ли это просто случаем крайней обратной совместимости (например, для Netscape 4 и т. П.), Или необходимо учитывать, что современные браузеры (например, Internet Explorer 6 и более поздние версии) всегда будут иметь доступ<head>
элемент в DOM?