У меня есть базовая страница html, на которой есть ссылки, указывающие на разные сайты. Я хочу отслеживать клики. Я делаю это, отправив 0-пиксельный вызов изображения на событие Click ссылки, не возвращая false на событие click.ссылка Слежение за кликами не работает в браузере Safari
То же самое работает во всех браузерах, кроме 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, ie и Opera. Не работает на Safari только ..... любые подсказки ....
Вы ожидаете, что изображение закончит загрузку или сделает что-то вроде 'setTimeout()'? Можем ли мы увидеть код? – alex
Благодарим за замораживание браузера пользователей за 500 миллисекунд. Эмулирующий сон в JS ... без комментариев. PS: Я также думаю, что Safari ждет, пока JS закончит, прежде чем он выполнит запрос. Вы должны изменить свой код на асинхронный запрос AJAX вместо изображения thingadong (то есть, если ваш счетчик находится на одном сервере). –
код добавлен ... :) Мой счетчик php находится на другом сервере и его необходимо хранить там. ** ЛЮБОЙ ** другие предложения .... –