Mọi trình duyệt tôi đã quan sát đều tạo thành phần tử <head>
có thể truy cập được trong DOM ngay cả khi không có các thẻ <head></head>
rõ ràng trong đánh dấu tài liệu.Phần tử <head> luôn có sẵn trong DOM, ngay cả khi không có trong đánh dấu HTML?
Tuy nhiên, Google Analytics sử dụng đoạn mã sau cho động chèn script:
(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);
})();
Các dòng sau:
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
dường như để tạo ra một nhượng bộ đặc biệt đối với trường hợp một yếu tố <head>
là không có mặt .
Đây chỉ là trường hợp tương thích ngược (ví dụ, đối với Netscape 4 hoặc tương tự), hoặc có trường hợp không được giả định rằng các trình duyệt hiện đại (tức là Internet Explorer 6 và mới hơn) sẽ luôn có quyền truy cập vào phần tử <head>
trong DOM?
IE6 và thậm chí IE5.5 thêm phần tử 'HEAD' nếu không có, các trình duyệt khác như Safari <= 4 không, cũng có thể là một số phiên bản Opera cũ IIRC. – CMS
Cảm ơn, CMS! IE 6 là về như xa như tôi đã hỗ trợ trong một thời gian dài, do đó, nó làm cho cảm giác rằng tôi đã chỉ trở thành sử dụng để trình duyệt thêm một '
' automagically. – Bungle