1

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

我这样做的原因不是出于邪恶的目的或任何事情。我正在开发一款考试软件。用户回答考试/调查/测验中的所有问题,提交表单,然后被带到一个页面以查看反馈。目前,如果他们点击硬件后退按钮,他们会看到提示数据已经提交的警告框,但他们仍然可以点击 OK 并被带回考试并重新提交,从而重新提交相同的结果或更改他们的答案并重新提交。

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

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

我已经研究过 HTML5 History 功能,但由于它在较新版本的 Android 中缺乏支持,我无法使用它。我需要可以在 Android、iPhone 和最好是 Windows Phone 7 上运行的东西。

4

4 回答 4

4

没有真正的方法禁用黑莓或 Android 上的硬件后退按钮。

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

于 2012-07-11T15:38:27.130 回答
1

与问题稍微相关的是,如果您将 jQuery Mobile 与Cordova / PhoneGap一起使用,您可以监听一个名为“backbutton”的事件。确保在“deviceready”之后绑定它。

下面的例子:

document.addEventListener("backbutton", function (e) {
    e.preventDefault();
}, false);
于 2015-09-04T00:21:13.913 回答
0

您应该能够使用 JavaScript 捕获硬件后退按钮单击事件:

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

  if (event.keyCode == 27) { // 27 = 'Escape' keyCode (back button)
    event.preventDefault();
  }
});
于 2012-10-12T13:39:55.970 回答
-1

要在 jQuery Mobile 中禁用后退按钮,请在页面的标题 div 中包含 data-backbtn="false"。

您可以在http://jquerymobile.com/demos/1.0a3/#docs/toolbars/docs-headers.html上进行相同的测试

为了修改功能,您可以使用以下内容:

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

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

于 2012-07-11T05:06:33.243 回答