Google Analytics создает неработающие ссылки для IE8
Мы успешно работаем над сайтом 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 настройки таковы, что мы получаем электронное письмо каждый раз, когда есть неработающая ссылка. В последнее время один из наших пользователей генерировал много неработающих ссылок, связанных с Google Analytics. Сообщения об ошибках выглядят примерно так (где 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, чтобы воспроизвести проблему, но безуспешно.
Любая помощь будет оценена.
1 ответ
Я бы догадался об ошибке / причуде приоритета оператора, так как
('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')
Что происходит, когда вы ставите приоритет в скобках (см. Предыдущую строку)?