我们已成功运行Django网站几年。我们在大多数网页上使用以下(标准)Google Analytics代码。
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
_gaq.push(['_trackPageview']);
(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';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
在Django中,每次链接断开时我们都会收到一封电子邮件。最近,我们的一位用户已经生成了大量与谷歌分析相关的断开链接。错误消息看起来与此类似(其中apage是任何url):
Referrer: http://ourwebsite.com/apage/
Requested URL: /apage/.google-analytics.com/ga.js
User agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322) IP address: 127.0.0.1
根据错误消息,我怀疑问题与IE8和某些安全设置或模式有关。我试过运行IE8的Utilu IE Collection版本来重现问题,但没有运气。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我猜运算符优先级错误/怪癖,因为它看起来像
('https:' == document.location.protocol ? 'https://ssl' : 'http://www')
(在您的代码段的第8行)可能会被解析为
('https:' == (document.location.protocol ? 'https://ssl' : 'http://www'))
将评估为'https:' == 'https://ssl'
和false
,
而正确的意图似乎是
(('https:' == document.location.protocol) ? 'https://ssl' : 'http://www')
使用括号强制优先时会发生什么情况(参见上一行)?