У меня есть базовая HTML-страница, на которой есть ссылки, указывающие на другой сайт. Что я хочу сделать, это отслеживать клики. Я делаю это, отправляя вызов изображения в 0 пикселей на событие Click ссылки, не возвращая false при событии click.
То же самое отлично работает во всех браузерах, кроме Safari (в ОС Windows).
когда по ссылке щелкают, используя javascript, я задерживаю перенаправление, отправляю запрос изображения на сервер и регистрирую щелчок на стороне сервера. Я пытался увеличить задержку, но безуспешно ... Трекеры работают на gr8 во всех браузерах, кроме Safari, который вообще не отправляет запрос.
Я не знаю, почему, но, возможно, сафари ожидает выполнения полного js перед выполнением запроса, а после выполнения всего js оно перенаправляется ...
=============================================== ==========
<html>
<head>
<script type="text/javascript">
function logEvent(){
image = new Image(1,1);
image.onLoad=function(){alert("Loaded");};
image.onLoad=function(){alert("Error");};
image.src='http://#path_to_logger_php#/log.php?'+Math.random(0, 1000) + '=' + Math.random(0, 1000);
pauseRedirect(500);
}
function pauseRedirect(millis){
var date = new Date();
var curDate = null;
do {curDate = new Date();}
while(curDate-date < millis);
}
</script>
</head>
<body>
<a href="http://www.google.com" onclick="logEvent(); return true;">Site 1</a><br/>
<a href="http://www.yahoo.com" onclick="logEvent(); return true;">Site 2</a><br/>
</body>
</html>
=============================================== ==========
Код работает в chrome, firefox, т.е. и в Opera. Не работает только в Safari ..... никаких подсказок ....