2013-02-19 70 views
0

我有一个非常简单的jQuery移动应用:jQuery Mobile的阻止页面呈现

  • /index.html(包含一个链接到home.html
  • /home.html

我想home.html只对用户可见谁满足先决条件(例如本地存储应包含logged=true)。否则,我希望他们被重定向回index.html。当然,当用户点击从index.html的链接或者他/她通过URL直接导航到home.html时,我希望发生这种情况。

为了实施这其中的所有页面inluded外部脚本我有以下几点:

$(document).on('pagebeforecreate', function(e) { 
    if (!userIsLoggedIn() && e.target.id=='home_page') { 
     $.mobile.changePage('index.html'); 
    } 
}); 

注意,我home.html开始与<div home-role="page" id="home_page">

此代码的作品,但问题是,用户可以立即看到home.html的内容。我在API中看到pagebeforecreate是在页面转换中被调用的最早的事件。调用changePage虽然不会停止进一步的事件被呼叫在我不希望用户看到的页面上。

如何完全停止home.html的渲染并立即将用户重定向回index.html

回答

0

下面只是想法添加您的代码。

  1. 默认在“home.html”中使页面不可见。
  2. 当“home_page”位于'pagebeforecreate'时检查登录。
  3. 如果记录,使页面可见。
  4. 如果没有,改变index.html的

,但是,这只是藏在一个页面未注册的人,而不是真正的安全。 它仍然打开以从URL获取HTML纯文本代码。

0

这将帮助您防止jquery mobile从呈现页面。

jQuery(document).on('mobileinit', function(){ jQuery.mobile.autoInitializePage = false; });