禁用硬件后退功能jquery mobile

时间:2012-07-11 04:59:47

标签: jquery-mobile

所以我正在寻找一种方法来禁用后退按钮(Android上的硬件,iPhone上的软件),或者将用户重定向到另一个页面(然后是之前的页面)。

我的理由不是出于邪恶目的或其他任何目的。我正在研究一种考试软件。用户回答考试/调查/测验中的所有问题,提交表格,然后将其带到页面以查看反馈。目前,如果他们点击硬件后退按钮,他们会收到警告框,说明数据已经提交,但他们仍然可以点击确定并重新参加考试并重新提交,从而重新提交相同的结果或更改他们的回答和重新提交,

我正在寻找一种方法来禁用此功能,方法是以某种方式禁用后退按钮,或者将用户重定向到新页面。

有关该应用的一些信息。考试表格不是使用Ajax提交的。整个应用程序都是一个URL,无论您使用的是哪个页面,URL都始终相同。通过重新加载该URL,您将进入登录页面(这是完全可以接受的)。

我已经研究过HTML5历史记录功能,但由于它在较新版本的Android中缺乏支持,我无法使用它。我需要能够在Android,iPhone和WP7上运行的东西。

4 个答案:

答案 0 :(得分:4)

没有真正的方法可以禁用Blackberry或Android上的硬件back按钮。

您可以做的是维护一个会话变量,该变量在back处理程序中失效,并在考试页面的pagebeforeshow事件中检查该会话变量。

答案 1 :(得分:1)

与问题有点关系,如果你使用带有cordova / phonegap的jQuery Mobile,你可以听一个名为" backbutton"的事件。确保在" deviceready"。

之后绑定它

以下示例:

document.addEventListener("backbutton", function (e) {
    e.preventDefault();
}, false);

答案 2 :(得分:0)

您应该能够使用javascript捕获硬件后退按钮点击事件。

$(document).bind('keydown', function(event) {

  if (event.keyCode == 27) { // 27 = 'Escape' keyCode (back button)
    event.preventDefault();
  }
});

答案 3 :(得分:-1)

要禁用jquery mobile中的后退按钮,请在页面的标题div中显示data-backbtn =“false”

您可以在http://jquerymobile.com/demos/1.0a3/#docs/toolbars/docs-headers.html

上测试相同内容

为了修改功能,你可以拥有类似的东西

<a href="/#default" data-icon="back">

每次都会将您重定向到默认页面。

谢谢,