根據此博客文章“ 優化異步Google Analytics(分析)代碼段和評論”,我提出了一個經過優化的Google Universal Analytics(分析程序)代碼段,該代碼段較短,運行速度更快(盡管略有提高),並且破壞了IE6 / IE7 / oldIE8 *
兼容性。
+function(G,o,O,g){G.GoogleAnalyticsObject=O;G[O]||(G[O]=function(){(G[O].q=G[O].q||[]).push(arguments)});G[O].l=+new Date;g=o.createElement('script');g.src='//www.google-analytics.com/analytics.js';o.documentElement.appendChild(g)}(this,document,'ga');
ga('create', 'UA-XXXX-Y', 'auto');
ga('send', 'pageview');
但是,將上面的代碼段放在<head>
,它會將Universal Analytics腳本插入為</head>
和<body>
之間的子<html>
,而不是<head>
, <body>
而不是<html>
。 <body>
。
![關閉頭部標簽和打開身體標簽之間的腳本](https://stackoom.com/link/aHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9Gb0JBRC5wbmc=)
盡管IE8 +和現代瀏覽器似乎沒有問題,但我仍然擔心它可能會破壞較舊的移動瀏覽器或某些其他晦澀的非IE瀏覽器。
HTML規范中是否有任何地方描述了瀏覽器對放置在<head>
和<body>
之外的標記的反應?
*
Windows XP上未打補丁的香草IE8將像IE6和IE7一樣中止頁面加載,並產生HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
錯誤。 安裝累積安全更新后,從2010年4月首次發布的KB980182開始並包含在后續更新中(KB982381,KB2183461,KB2360131,KB2416400,KB2482017,KB2497640,KB2530548,KB2559049,KB2586448,KB2618444,KB2647516,KB2675157,KB2699988,KB2722913,KB2744842 ,KB2761465,KB2792100,KB2809289,KB2817183,KB2829530,KB2838727,KB2846071,KB2862772,KB2870699,KB2879017,KB2888505,KB2898785,KB2909921)解決了此問題。