2

我是 jQuery mobile 的新手,正在尝试使用 jQuery mobile 构建 PhoneGap 应用程序。

我有点坚持以下问题。

我有一个登录对话框作为表单,如果他们需要登录,我想向用户显示。我不希望他们在登录之前能够离开这个登录表单。我已经删除了所有链接在对话框中,但硬件后退按钮仍然有效。

我尝试了以下方法:

复制代码

function onDocumentReady() {
    document.addEventListener("deviceready", onDeviceReady, true);

    $("#loginDialog").on("pagebeforehide",
        function(event) {
            event.preventDefault();
            console.info('in pagebeforehide');
        }

    );
}

这虽然行不​​通。代码被调用(我添加了一个断点),但对 event.preventDefault() 的调用并没有停止导航离开页面。

在此先感谢您的帮助。

4

2 回答 2

3

正如我在许多答案中所说的那样,PhoneGap 和 Android 后退按钮非常混乱。

您可以禁用 Android 后退按钮,如下所示

$(function(){
    document.addEventListener("deviceready", onDeviceReady, false);
})

// PhoneGap is loaded and it is now safe to call PhoneGap methods
function onDeviceReady() {
    // Register the event listener
    document.addEventListener("backbutton", onBackKeyDown, false);
}

// Handle the back button
function onBackKeyDown() {
    console.log("back button not fired");
}
于 2013-03-13T05:51:04.360 回答
0

preventDefault 将阻止锚标记的默认操作。如果你想禁用后退按钮试试这个:

<SCRIPT type="text/javascript">
    window.history.forward();
    function noBack() { window.history.forward(); }
</SCRIPT>
</HEAD>
<BODY onload="noBack();"
    onpageshow="if (event.persisted) noBack();" onunload="">
于 2013-03-12T18:21:38.750 回答