【问题标题】:Prevent back button jquery mobile防止后退按钮jquery mobile
【发布时间】:2012-11-11 13:20:53
【问题描述】:

我正在开发一个 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导航。

干杯

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      return false; 如 Samuel 所说或添加 event.stopImmediatePropagation();

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-27
        相关资源
        最近更新 更多