2012-02-08 1 views
1

Мне нужно руководствоваться тем, как иметь очень простой контроль при использовании кнопки «Назад».Управление кнопкой «Назад» с помощью onhashchange или jquery

В принципе, мне нужно предупредить пользователя, что, щелкнув по кнопке «Назад», на моей странице checkout.asp они потеряют уже имеющиеся элементы. Мне нужно научить их использовать навигационные кнопки.

Я взглянул вокруг, увидев упоминание о событии onhashchange, но я не мог заставить его работать.

Я также попытался плагин Бена Alman:

<script type="text/javascript" src="jquery/js/jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="jquery/js/jquery-ui-1.8.16.custom.min.js"></script> 
<script type="text/javascript" src="jquery/js/jquery.ba-hashchange.js"></script> 

<script language="JavaScript" type="text/JavaScript"> 
$(function(){ 
    // Bind the event. 
    $(window).hashchange(function(){ 
    // Alerts every time the hash changes! 
    alert(location.hash); 
    }) 
    // Trigger the event (useful on page load). 
    $(window).hashchange(); 
}); 
</script> 

This только разжигает чеку (без значения от location.hash) при входе на страницу, но я просто хочу, чтобы предупредить пользователя, если они «Уходит. Если они захотят остаться, пусть они отменит отмену, чтобы оставить их на одной странице.

Любая помощь приветствуется.

ответ

0

Использование:

window.onbeforeunload = function() { 
    return confirm("you have unsaved data. ok to exit?") 
}) 
+0

Diodeus спасибо. Я пробовал это, но снова он только предупреждает при входе на страницу, а не при выходе. Чтобы быть уверенным, я вложил вам код r в $ (function() {.. code ..}), который, как я полагаю, является правильным. Кроме того, не будет ли этот пожар, даже когда пользователь нажмет одну из кнопок навигации? –

+0

Простите, неудачный пример. Я обновил его. –

+0

спасибо, я попробую это сейчас. –

0

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

var showWarning = true; 

window.onbeforeunload = function() { 
    if (showWarning) { 
    return confirm("you have unsaved data. ok to exit?"); 
    } 
} 

function clearWarning() { 
    showWarning = false; 
} 

Теперь просто убедитесь, что вы вызываете функцию clearWarning(), когда нажата кнопка. Нечто подобное должно работать:

referenceToElement.addEventListener('onClick', clearWarning(), false); 

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

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