【发布时间】:2014-06-16 10:06:34
【问题描述】:
基于这篇博文 Optimizing the asynchronous Google Analytics snippet 和 cmets,我提出了这个优化的 Google Universal Analytics sn-p,它更短、运行更快(尽管稍微有点)并打破了 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');
但是,当上面的 sn-p 放置在 <head> 中时,它会将 Universal Analytics 脚本作为子代插入,而不是 <head>,不是 <body>,而是 <html>,就在 @987654330 之间@ 和<body>。
虽然 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) 错误。安装累积安全更新,从KB980182 2010年4月首次发布,并在后续的更新(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, 修复问题。
【问题讨论】:
标签: javascript html internet-explorer dom google-analytics