防止后退按钮jquery移动

时间:2012-06-14 06:35:52

标签: jquery jquery-mobile

我正在开发一个jQuery移动项目并且需要阻止用户返回某些页面,UI显然没有提供用户不应该返回的后退按钮,但我仍然有一个用户单击浏览器上的后退按钮时出现问题。

我试图通过将pagebeforechange事件绑定到一个函数来阻止用户返回,该函数通过查看目标页面的URL可以知道用户是否返回。这在我的项目中很简单,因为只有2个URL可以通过UI访问,因此任何其他URL都意味着用户点击后退按钮。我正在使用正则表达式,因为URL的性质来验证这一点:

$( document ).bind('pagebeforechange', function(event, data) {  

  if(typeof data.toPage === "string") {
    var url = data.toPage;
    var regex = /.../
    var paramsIndex = url.indexOf('?'); // Get rid of possible params

    if(paramsIndex > 0) {
      url = url.substr(0, paramsIndex);
    }

    if(regex.test(url)) {   
       event.preventDefault(); // Prevent the user from going back..
    }       
  }

});

不幸的是,这不起作用,即使正则表达式正常工作并且每次用户点击后退按钮时匹配(并且只有那时)。我想知道你是否有任何想法,我宁愿继续使用jquery mobile的ajax导航。

干杯

2 个答案:

答案 0 :(得分:0)

我不是移动开发专家,但看到this question,也许您应该尝试这样做:在您的事件处理程序中,将event.preventDefault();替换为return false;。这只能让您有更多机会实现目标。

答案 1 :(得分:0)

Samuel所说的

return false;或添加event.stopImmediatePropagation();