Jquery mobile 我们可以避免jquery mobile中的直接页面访问吗?

Jquery mobile 我们可以避免jquery mobile中的直接页面访问吗?,jquery-mobile,Jquery Mobile,我的Jquery移动应用程序有一个简单的登录页面,用户将通过该页面登录并能够访问其余页面。但这里的问题是,我仍然能够访问其余页面而无需登录。登录会话在客户端使用cookie进行维护,因为在服务器端没有维护会话。我有一个HTML文件,其中包含所有必需的jquery移动页面。是否有任何方法可以限制对应用程序内部页面的直接访问 <body onload="init()"> <div> <!-- login page --> <div d

我的Jquery移动应用程序有一个简单的登录页面,用户将通过该页面登录并能够访问其余页面。但这里的问题是,我仍然能够访问其余页面而无需登录。登录会话在客户端使用cookie进行维护,因为在服务器端没有维护会话。我有一个HTML文件,其中包含所有必需的jquery移动页面。是否有任何方法可以限制对应用程序内部页面的直接访问

<body onload="init()">
  <div>
    <!--  login page -->

    <div data-role="page" id="home" data-theme="wl" style="top: 1px;">
      ..............
    </div><!-- End of login page  -->
    <!--  forgot page -->

    <div data-role="page" id="forgot" data-theme="wl">
      .................
    </div><!--  End of forgot password page -->
    <!-- Search page  -->

    <div data-role="page" id="search" data-theme="wl">
      ................
    </div><!-- End of search result page  -->
    <!--  Sendmail page -->

    <div data-role="page" id="sendmail" data-theme="wl"></div>
    <!-- End of Sendmail page  -->
    <!--- View Profile Page =-->

    <div data-role="page" id="viewProfile" data-theme="wl">
      ........................
    </div><!-- End of View Profile Page  -->
  </div>
</body>

..............
.................
................
........................
您可以原型化(覆盖)页面显示事件方法

以下代码是处理该事件的方法:

<script type="text/javascript" language="javascript">
    $('mypage').live('pageshow', function (event, ui) {
        alert('This page was just hidden: ' + ui.prevPage);
    });
</script>

$('mypage').live('pageshow',函数(事件,用户界面){
警报('此页面刚刚隐藏:'+ui.prevPage);
});
更多活动可在此处找到:

这是一个关于javascript原型的教程:

开始寻找覆盖的位置可能在

美元事件

可能你甚至不需要重写一个事件,可能现有的一个事件会做你想做的事情。您可以使用firebug来检查事件处理程序变量,以查看是否存在阻止导航到下一页的参数选项

您可以原型化(覆盖)页面显示事件方法

以下代码是处理该事件的方法:

<script type="text/javascript" language="javascript">
    $('mypage').live('pageshow', function (event, ui) {
        alert('This page was just hidden: ' + ui.prevPage);
    });
</script>

$('mypage').live('pageshow',函数(事件,用户界面){
警报('此页面刚刚隐藏:'+ui.prevPage);
});
更多活动可在此处找到:

这是一个关于javascript原型的教程:

开始寻找覆盖的位置可能在

美元事件


可能你甚至不需要重写一个事件,可能现有的一个事件会做你想做的事情。您可以使用firebug来检查事件处理程序变量,以查看是否存在阻止导航到下一页的参数选项

我找到了另一个简单的解决方案。早些时候,当我遇到这个问题时,我曾在按钮单击的onClick事件中检查cookie会话。但现在我通过在下面描述的pageshow事件中检查cookie会话来更改它

$('mypage').live('pageshow', function (event, ui) {
    if(checkCookie()){
        //do some task    
    } else {
       alert('Your Session has Expired or User not Logged In');
       $.mobile.changePage("#login", "slide", true, true);
    }
});

我找到了另一个简单的解决方案。早些时候,当我遇到这个问题时,我曾在按钮单击的onClick事件中检查cookie会话。但现在我通过在下面描述的pageshow事件中检查cookie会话来更改它

$('mypage').live('pageshow', function (event, ui) {
    if(checkCookie()){
        //do some task    
    } else {
       alert('Your Session has Expired or User not Logged In');
       $.mobile.changePage("#login", "slide", true, true);
    }
});