Как я могу контролировать действие onbeforeunload в IE?
У меня проблема с onbeforeunload
Недавно мне нужно было открыть страницу голосования, когда пользователи пытаются закрыть свои браузеры IE. Я сделал это с помощью:
<body onbeforeunload="makevote()">
И основная структура makevote()
в JavaScript это выглядит следующим образом:
function makevote()
{
comet.distruct();
if(csid != null && isvote == null)
{
window.event.returnValue = false
window.event.returnValue='press “cancel” to vote please!'
showComDiv(popvote,"popiframe",400,120,'your vote here','dovote()');
}
}
В последние три месяца эта функция голосования выполнялась настолько безобразно, что я получил только менее 8 000 голосов от более чем 4,50 000 посетителей. Я думаю, что проблема в том, что когда пользователи пытаются закрыть свои браузеры, onbeforeunload
свойство вызывает всплывающее окно, которое закрывает мое окно голосования, в то время как большинство пользователей нажимают кнопку ОК, что означает, что закрытие подтверждения выполняется, как привычка. Поэтому мой вопрос заключается в том, как я могу контролировать окно подтверждения, созданное onbeforeunload
себя? Например, если я нажму "ОК", я перейду к окну голосования вместо того, чтобы закрыть свой IE. Пока что я могу только определить сообщение, которое оно показывает. И есть ли другой способ сделать это лучше? будет принята с благодарностью!
С уважением
1 ответ
Проще говоря, вы не можете.
Это встроенное поведение, разработанное для обеспечения минимальных изменений в целях безопасности. То же самое в каждом браузере; FF, Chrome и т. Д. Все будут вести себя одинаково.
Основная цель beforeunload для таких вещей, как предоставление пользователям возможности сохранять изменения до того, как их изменения будут потеряны.
Кроме того, если ваши пользователи уходят, уже слишком поздно - они больше не захотят отвечать на вопросы, все готово!