基于这篇博文Optimizing the asynchronous Google Analytics snippet和评论,我想出了这个优化的 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>
.
虽然 IE8+ 和现代浏览器似乎没有问题,但我仍然担心它可能会破坏旧的移动浏览器或其他一些不起眼的非 IE 浏览器。
HTML 规范中是否有任何地方描述了浏览器应如何对放置在 <head>
之外的标签使用react和<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、KB26 18444、KB2647516、KB2675157、KB2699988、KB2722913、KB2744842 , KB2761465, KB2792100, KB2809289, KB2817183, KB2829530, KB2838727, KB2846071, KB2862772, KB2870699, KB2879017, KB2888505, KB2898785, KB 2909921),修复了问题。
最佳答案
关于javascript - HTML 中是否允许 <head> 和 <body> 之外的 <script> 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23382115/