Javascript для получения оповещения для перенаправления при закрытии окна браузера - PullRequest
2 голосов
/ 15 января 2009

Я пытаюсь заставить этот Javascript работать должным образом. Мое намерение состоит в том, чтобы, когда пользователь пытается закрыть страницу сайта, чтобы получить предупреждение, говорящее «остаться на текущей странице или закрыть». Если они нажимают «ОК», я хочу закрыть его, если они нажимают «Отмена», я хочу, чтобы он перенаправил на другую страницу. Проблема в том, что когда они пытаются перейти на другую страницу на том же сайте, это дает им это всплывающее окно. Я хочу, чтобы он показывался только при закрытии, а не при выходе со страницы на другую страницу. Я не уверен, если это возможно, я ценю вашу помощь и комментарии.

    window.onbeforeunload = fget;
function yPop(url) {
  var found = 1;
  window.onbeforeunload = '';
  window.location = url;
  return false;
}
function fget() {
  alert("Thank you for visiting our website, you are welcome any time! \n\n");
  window.location = "http://NewLink.com";
  return "\n________________________\n\n PRESS 'CANCEL' To Stay On The Current Page \n\n________________________\n";
}

Ответы [ 3 ]

18 голосов
/ 15 января 2009

Проблема в том, что когда они пытаются перейти на другую страницу на том же сайте, это дает им это всплывающее окно. Я хочу, чтобы это показывалось только при закрытии

  1. Не делай этого.

  2. Вы не можете обнаружить только закрытие, но вы можете определить разницу между уходом, нажав на внутреннюю ссылку и другими видами ухода, включая внешние ссылки, кнопку возврата, закрытие и выбор / ввод нового URL. В скрипте после загрузки страницы установите событие onbeforeunload, затем просмотрите все document.links и протестируйте их .host с текущим location.host. Если они совпадают, это внутренняя ссылка. В этом случае добавьте к ним событие onclick, которое удаляет событие onbeforeunload перед возвратом true, позволяя ссылке работать нормально без предупреждения.

  3. Серьезно, не делай этого. Это невероятно раздражает, высокомерно и бесполезно. Веб-мастера, использующие сценарии оставляющего вредителя, приговорены к четвертому кругу интернет-ада, где они должны провести остаток вечности, заставляя таблицы стилей работать в Netscape 4, используя только ed , изношенную зубную щетку и -tag.

0 голосов
/ 07 марта 2009

Возможно, вы захотите создать страницу "Вы собираетесь покинуть этот сайт". Идея заключается в том, что вы оборачиваете URL-адреса на странице, которых нет на вашем сайте, чтобы они указывали на эту страницу, давая посетителю знать, что он собирается покинуть сайт, и давая им возможность вернуться или продолжить.

Это более мягкий, чем неожиданный модальный диалог, он позволяет лучше форматировать ваши сообщения и в конечном итоге дает вашим пользователям точно такой же выбор.

0 голосов
/ 15 января 2009

вы должны использовать окно onbeforeunload Event.

http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx

https://developer.mozilla.org/en/DOM/window.onbeforeunload

для пользователей jquery:

$(window).unload( function () { alert("Bye now!"); } );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...