即使在注销用户后,单击“返回”也会向用户显示其上一页。

时间:2011-10-20 01:21:14

标签: jquery-mobile mobile-safari iphone

我的移动网站上有几页。一个页面允许用户登录,另一个页面向用户显示他们的日期并允许用户注销。但是,当用户注销并重定向到登录页面时,他们可以单击后退按钮并返回到他们认为已通过身份验证的页面。

我只有一个html页面分成多个div(“页面”)并使用$.mobile.changePage从一个页面导航到另一个页面。

如何才能使用户点击后退按钮时看不到他们的数据?

当我浏览回来时,我的'pageinit'没有被执行。如果是,我将能够检查用户是否已登录...

2 个答案:

答案 0 :(得分:1)

示例:

JS

var $secure_token = true;

$('div').live('pageshow',function(event, ui) {
    // Check for secure token here
    if($secure_token != true) {
        $.mobile.changePage("#login", { transition: "slideup"} );
    }
});

// Act if user has logged out
$('#secure2').live('pageshow',function(event, ui) {
    $secure_token = false;
});

HTML

<div data-role="page" id="login">
    <div data-role="content">
        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
            <li data-role="list-divider">Redirect</li>
            <li><a href="#secure1">Secure Page 1</a></li>
            <li><a href="#secure2">Secure Page 2</a></li>
        </ul>
    </div>
</div>

<div data-role="page" id="secure1">
    <div data-role="content">
        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
            <li data-role="list-divider">Secure Page 1</li>
            <li><a href="#secure2">Secure Page 2</a></li>
        </ul>
    </div>
</div>

<div data-role="page" id="secure2">
    <div data-role="content">
        <p>Please hit the browser back button or right click and back</p>
    </div>
</div>

答案 1 :(得分:0)

我认为这是正常的行为,因为任何浏览器都会保存它呈现的上一个网页。我刚用我自己的网页测试过,它确实显示了信息,但每当你尝试更改某些内容时,系统都会重定向到登录视图。

我的意思是,他们会看到以前的数据,但它会过时,如果没先登录就无法更改。