2010-05-27 2 views
6

Мне нужен сценарий сообщений, который появится только при выходе из текущей веб-страницы, а не на текущем веб-сайте.Сообщение OnUnload, необходимое для внешних ссылок

Когда люди полностью покидают сайт, появится сообщение, и им нужно будет нажать кнопку «ОК», чтобы оставаться на текущей странице (и отменить, чтобы покинуть сайт).

Сценарий может не работать, когда люди на самом деле остаются на веб-сайте или когда они нажимают на внутренние ссылки или страницы.

Можно ли это сделать?

+0

п.с. моего Webiste http://www.consolepro.net который profides Нинтендо Вия softmod мягкого мода действительно есть скрипт, который генерирует по ссылке Automaticly – tumtummetjes

+0

Возможного дубликата [Вывести предупреждение при выходе из сайта, а не только на страницу] (http://stackoverflow.com/questions/2365994/display-a-warning-when-leaving-the-site-not-just-the-page) – KyleMit

ответ

5

Отъезд this very basic example solution. Он устанавливает обработчик onbeforeunload, но затем удаляет его, если пользователь нажимает на внутреннюю ссылку. Ниже приведена общая версия кода из примера решения.

HTML:

<a href="internal_link.html">internal link</a> 
<a href="http://www.example.com">external link</a> 

JS (использует jQuery):

window.onbeforeunload = function(){ 
    return "Are you sure you want to leave our website?"; 
} 
$(function(){ 
    $('a, input, button').click(function(){ 
      window.onbeforeunload = null; 
    }); 
}); 
+0

так что будет полный код iclude строки запроса и т. д.? и я не понимаю часть внутренней ссылки? так как я не могу изменить наши внутренние ссылки, которые автоматически генерируются нашей корзиной – tumtummetjes

+0

и offcourse для части тела тегов html и т. д. – tumtummetjes

+0

Строка 'internal link' - просто пример ссылки, которая будет иметь то же доменное имя, что и 'location.host' , Любая ссылка, которая является «внутренней» на вашем веб-сайте (что означает, что она не связана с другим доменом), должна приводить к тому, что оператор 'if'' this.href.match (location.host) 'возвращает' true', onbeforeunload', что предотвращает предупреждение сообщения «Вы уверены, что хотите покинуть наш веб-сайт?» сообщение от всплывающего сообщения. [... комментарий продолжался ниже ...] – Adam

1

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

Следуйте моему небольшому примеру.

<html> 
<head> 
<script type="text/javascript"> 
function closeThis() 
{ 
    if (window.confirm("Minha mensagem!")){ 
     window.close(); 
    } 
} 

function test() 
{ 
    // Add a warning in case anyone tries to navigate away or refresh the page 
    return confirm("Minha mensagem"); 
} 


</script> 
</head> 
<body onbeforeunload=test();> 
<p>Hello World! Press F5 or Close this Window</p> 
</body> 
</html> 
1

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

Вот мое решение для этого:

$(window).on('beforeunload', function() { 
    /* whatever you want here */ 
} 

$(document).on('click keydown', function(){ 
    $(window).off('beforeunload'); 
});