javascript, как узнать, какая кнопка была нажата, с помощью onbeforeunload

я делаю всплывающее предупреждение следующим образом:

window.onbeforeunload = confirmExit;
function confirmExit()
{
return "Wait! Save up to $20 Today! \n nClick OK to Save";
} 

когда я закрываю окно, я проверяю Stay on the page и Close the browser или что-то подобное

то, что я пытаюсь сделать, это: если была выбрана опция Stay on the page, я хочу перенаправить пользователя на другую страницу или показать всплывающее окно jquery.

что-то похожее:

if (window.onbeforeunload = null){
location.assign('http://example.com');
}

но это не работает.

Любые идеи?

Спасибо


person Patrioticcow    schedule 14.09.2011    source источник
comment
Аналогичный вопрос: stackoverflow.com/questions/1335727/   -  person v42    schedule 14.09.2011
comment
Такое сообщение очень раздражает. Возможно, вы захотите удалить его, потому что пользователям это не понравится.   -  person pimvdb    schedule 14.09.2011


Ответы (1)


Как сказал pimvdb в своем комментарии к вашему вопросу, это действительно раздражает, и я настоятельно рекомендую этого не делать. Это просто разозлит ваших потенциальных клиентов и гарантирует, что они не захотят вернуться на ваш сайт позже.

Тем не менее, вот что вы можете попробовать. Я не уверен, что это сработает, я мог видеть, что есть некоторые меры безопасности, чтобы вы не могли возиться с вещами во время выгрузки окна, но я бы сделал что-то вроде:

window.onbeforeunload = confirmExit;
var triedToExit = false;
function confirmExit()
{
  triedToExit = true;
  return "Wait! Save up to $20 Today! \n nClick OK to Save";
}

Оттуда у вас есть некоторые функции, которые время от времени проверяют, установлен ли tryToExit, и если это так, вы можете пересылать их как обычно.

Но на самом деле, не делайте этого.

person Asmor    schedule 14.09.2011