jQuery Mobile - 仅在指向特定页面时删除后退按钮

时间:2011-10-27 18:52:09

标签: javascript jquery jquery-mobile

我有一个带登录屏幕的移动网络应用。登录后,用户转到应用程序的主屏幕。由于我为整个应用程序启用了后退按钮,因此主屏幕上会显示后退按钮;但是,现在按“返回”将使用户返回登录页面(我不想要)。同时,主屏幕应该有一个“后退”按钮,因为用户可能会从应用中的其他屏幕进入主屏幕,并可能想要返回。

所以基本上有什么简单的方法可以禁用后退按钮,如果它要进入登录界面,但是如果要进入其他地方则没有?

3 个答案:

答案 0 :(得分:0)

您可以考虑的另一个策略是让登录页面向主页的查询字符串添加一个参数,指示应该禁用后退。

http://myapp.com/page.html?backDisable=true

在您的网页内部,一个简单的javascript调用可以确定参数是否已通过,如果是,则禁用后退按钮。这是使用URL parser plugin的示例。

if ($.url().param('backDisable') === 'true') {
  $('#backButton')[0].disabled = true;
}

答案 1 :(得分:0)

如何设置访问过的页面数组并检查它以查看最后一页是否为登录页面:

//setup array of page views
var page_views = [];
//add event handler for `pageshow` event
$('[data-role="page"]').live('pageshow', function () {
    //add current page to page_views array
    page_views.push(this.id);
    var page_views_length = page_views.length;
    //check if the current page is the homescreen and if the last page was the login page
    if (this.id == 'homescreen_id' && page_views_length > 1 && page_views[(page_views_length - 2)] == 'login_id') {//this assumes your login page has the id of `login_id` and your homescreen page has the id of `homescreen_id`
        //run code to hide the back button
    }
});

答案 2 :(得分:0)

将data-ajax =“false”添加到您的登录表单中。 我假设您的登录表单和主屏幕存在于同一个域中。

因此,当您访问example.com时,您会看到登录表单(如果未登录) ...当你去example.com时,你会看到一个欢迎画面...

我的索引布局的PHP示例......(脏):

<div data-role="page">
<?php if ($notloggedin) { ?>
    <form method="post" action="<?= $this->baseUrl('/'); ?>" id="login-form" data-ajax="false">...form...</form>
<?php } else { ?>
    YOUR PAGE
<?php } ?>
</div>

jquery mobile page links

相关问题