function log(name, value)
{
mylog.push({'name':name, 'value':value});
}
function flush()
{
for (i = 0 ; i < mylog.length ; i++){
url_str += '&n[]=' + mylog[i].name + '&v[]=' + mylog[i].value;
}
url_str += '&r='+Math.floor(Math.random() * 100000);
var img = new Image();
var url = 'http://somedomain.com/pixel.php?' + url_str;
img.src = url;
}
if (window.attachEvent)
window.attachEvent('onunload', flush);
else if (window.addEventListener)
window.addEventListener('unload', flush, false);
Я работаю над кодом, который отслеживает взаимодействие пользователя с целью поиска горячих точек на странице.Большая часть этого уже сделана и работает в большинстве браузеров, но в настоящее время я нахожусь в тупике на Safari 5.0.5 / Mac 10.6 (кстати, его также можно скопировать с Safari 5.0.1 на Windows XP).Часть, которая доставляет мне трудности - это щелчки по ссылкам во время передачи страниц.Например, приведенный ниже код приводит меня к someotherpage.html:
<form onclick="log('LINK_CLICKED', 'some other page'); this.submit();" action="someotherpage.html">Some other page</form>
Сайт переводит меня к someotherpage.html во всех браузерах, но только Safari 5.0.5 / Mac 10.6 не показывает LINK_CLICKED вжурналы.После некоторой проверки консоли в инспекторе Safari я обнаружил, что в Safari произошла ошибка «не удалось загрузить ресурс».Я подозреваю, что это потому, что хотя URL можно было вызвать, браузер решил перейти на (?).
В любом случае, я пробовал событие beforeunload и использовал setTimeout, чтобы задержать выгрузку страницы.Я думаю об изменении формы HTML в целом, но это будет довольно трудоемко.Тем не менее, я открыт для этого, если у кого-то нет идей, которые пропустили мое внимание.Любые предложения о том, как это может работать в Safari 5.0.5 (Mac 10.6)?