如何防止用户在页面上后退/前进?

时间:2015-06-03 18:15:01

标签: javascript jquery browser navigation

我有一个在不同系统(即电话系统)的框架内运行的脚本。每当用户点击shift并用鼠标滚动时,页面就会返回,这会导致电话系统出现问题。 / p>

我需要完全阻止用户向前或向后导航,因为此页面将由电话系统控制,只要电话系统处于打开状态,就应该打开。

要停止导航,我已经完成了这个

<script type="text/javascript">
 function stop()
 {
     return false;
 }

 document.onmousewheel = stop;
 window.onbeforeunload = stop;

</script>

但是会显示一条消息“你确定要离开这个页面吗?”用户必须单击“离开此页面”或“留在此页面上”才能继续。

但是,如果用户点击“离开此页面”,我仍会遇到原始问题。

我可以完全阻止用户返回吗? 以下是我认为但不能应用其中任何一个的潜在解决方案

  1. 代表用户点击代码“停留在此页面上”。如果我总是可以点击“留在此页面上”
  2. 禁用“离开此页面”按钮。因此,使用时没有其他按钮可点击,但“留在此页面上”。

1 个答案:

答案 0 :(得分:0)

这假设您已加载jQuery。我无法在你的场景中测试这个,所以请告诉我这是否适合你。

$('html').keypress(function(event) {
    // 16 is shift's key code
    if (event.which === 16) {
        event.preventDefault();
    }
});

这可以防止shift键在浏览器中执行其默认行为。