[Jquery] Заменить стандартный обработчик onbeforeunload

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
292
PHP:
$(document).ready(function() {
  $('body').attr('onbeforeunload',"return 'Leaving this page will cause any unsaved data to be lost.';");
});
Нужно заменить стандартный обработчик. При клике по ссылке вылазиет стандартное виндовое окно с вопросом: "Хотите ли вы уйти с этой страницы ?" и 2 варианта ответа ДА / НЕТ.
Можно ли как-нибудь вместо этого обработчика выдавать свой всплывающий ДИВ ? Можно не Jquery, а javascript
 
Браузер когда показывает стандартное виндовое окно то останавливается и ждёт действий от пользователя (да или нет), а если делать через дивы то ничто браузер не остановит и сразу уйдёт со страницы. Так что если див и будет показыватся, то его никто не заметит. Как вариант для переходов по ссылкам, после загрузки страницы искать внешние ссылки и для них показывать свой div.
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Selector</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script language="javascript" type="text/javascript">
$(document).ready(function() {
    $('a').each(function(index){
        //для ссылок начинающихся с http:
        if($(this).attr('href').search(/http:/i)==0){
            $(this).click(function() {
                //покажем div
                $('#alert').show();
                //возьмём ссылку куда перейти
                $('#alert #link').val($(this).attr('href'));
                //вопрос для div
                $('#alert #content').html('Перейти на '+$(this).attr('href')+'?');
                //обработка да, нет
                $('#alert #alert_yes').unbind().click(function(){
                    location.href = $('#alert #link').val();
                });
                $('#alert #alert_no').unbind().click(function(){
                    $('#alert').hide();
                });
                return false;
            });
        }
        
    });
});
    </script>

</head>

<body>
    <div id="alert" style="display:none;">
        <div id="content"></div>
        <input type="hidden" value="" name="link" id="link" />
        <div id="alert_yes" style="cursor:pointer;">Да</div>
        <div id="alert_no" style="cursor:pointer;">Нет</div>
    </div>
    <a href="http://www.example.com">example</a>
    <a href="http://www.google.com">google</a>
    <a href="onbeforeunload.html">локальная ссылка</a>
</body>
</html>
 
Задача именно отрубить браузерный обработчик ухода со страницы и показать свой. Для той же самой функции предопределенной функции onbeforeunload.
 
Назад
Сверху