2010-08-12 3 views
4

У меня есть этот код jQuery;Window beforeunload показывает два диалога

$(function() { 
    $(window).unbind("beforeunload"); 
    $(window).bind("beforeunload", function() { 
     return confirm("Really?"); 
    }); 
}); 

Когда я закрываю окно я получаю запрос на подтверждение и если я нажимаю «Отмена» Я получаю второе подтверждение, которое говорит;

"Вы действительно хотите перейти от этой страницы?"

"False"

"Нажмите OK для продолжения или Отмена, чтобы остаться на текущей странице."

Почему я получаю второй диалог и есть способ его удалить?

редактировать

изменили код, чтобы быть;

$(function() { 
    $(window).bind("beforeunload", function() { 
     return "slappy?"; 
    }); 
}); 

Но сообщение с подтверждением не появляется. Событие увольняется, потому что я могу поставить там предупреждение и посмотреть предупреждение.

редактировать 2

изменили код для этого;

window.onbeforeunload = function() { 
    var txtBlog = $('#tbxNote').val(); 
    if (txtBlog != "") 
     return "You have not saved your blog entry."; 
} 

это работает, но есть и другой текст выше и ниже моего сообщения;

"Вы действительно хотите перейти от этой страницы?"

«Вы не сохранили запись в блоге».

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

+0

Это происходит на IE8. Не проверено FF – griegs

+0

Вы можете сократить это, выполнив '$ (window) .unbind (« beforeunload »). Bind (« beforeunload »), ...', но это полностью зависит от вас. –

+0

Re edit 2: Как указано в Cory ниже, невозможно изменить или удалить дополнительный текст - в противном случае вредоносные веб-сайты могут запутать людей, показывая обманчивое сообщение. –

ответ

5

Просто используйте:

return "Really?"; 

Событие beforeunload требует, чтобы возвращать строку, содержащую сообщение, которое необходимо отображать в стандарте «Вы уверены, что» диалог.

+2

И в случае, если вы не знали и не задавались вопросом ... нет возможности перекрыть встроенные сообщения «Are you sure ...» и «Press OK to ...». –

+0

Подтверждение не срабатывает; $ (функция() {$ (окно) .bind ("beforeunload", функция() { возврата() "Slappy?"; }); }); Любые мысли? – griegs

+0

Вы имеете в виду, что вы перешли из двух диалогов в один диалог или в нулевые диалоги? –

Смежные вопросы