Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用onhashchange或jquery控制后退按钮_Javascript_Jquery_Hashchange_Jquery Bbq - Fatal编程技术网

Javascript 使用onhashchange或jquery控制后退按钮

Javascript 使用onhashchange或jquery控制后退按钮,javascript,jquery,hashchange,jquery-bbq,Javascript,Jquery,Hashchange,Jquery Bbq,我需要一些关于如何使用后退按钮进行基本控制的指导 基本上,我需要警告用户,当我在checkout.asp页面上单击后退按钮时,他们将丢失已经存在的项目。我需要指示他们改用导航按钮 我环顾四周,看到有人提到onhashchange事件,但我无法让它发挥作用 我还尝试了Ben Alman的插件: <script type="text/javascript" src="jquery/js/jquery-1.6.2.min.js"></script> <script typ

我需要一些关于如何使用后退按钮进行基本控制的指导

基本上,我需要警告用户,当我在checkout.asp页面上单击后退按钮时,他们将丢失已经存在的项目。我需要指示他们改用导航按钮

我环顾四周,看到有人提到onhashchange事件,但我无法让它发挥作用

我还尝试了Ben 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>

$(函数(){
//绑定事件。
$(窗口).hashchange(函数(){
//每次哈希更改时都会发出警报!
警报(location.hash);
})
//触发事件(在页面加载时有用)。
$(window.hashchange();
});
这只会在进入页面时触发警报(location.hash中没有值),但我只想在用户离开时发出警告。如果他们选择留下来,那么让他们按“取消”将他们留在同一页上

感谢您的帮助。

使用:

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

为了仅在使用后退按钮时显示警告,我们必须在单击有效源时消除警报消息

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);

我还没有测试过这个,但我想这正是您所需要的。

谢谢。我已经试过了,但它只是在进入页面时发出警报,而不是在离开页面时发出警报。我只是想确定一下,我已经在$(function(){..code..})中附上了r代码,我认为这是正确的。此外,即使用户按下其中一个导航按钮,也不会触发吗?二极管。这很有效。但是,它仍然给我留下了一个问题,即即使用户使用了“正确”的导航按钮,它也会进行标记。你知道我怎么才能只按后退按钮吗?