0

我有一个非常简单的 jquery 移动应用程序:

  • /index.html(包含指向 的链接home.html
  • /home.html

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

为了执行此操作,我在包含在所有页面中的外部脚本中包含以下内容:

$(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

4

2 回答 2

0

跟随只是添加您的代码的想法。

  1. 默认情况下,在“home.html”中使页面不可见。
  2. 当“home_page”位于“pagebeforecreate”时检查登录。
  3. 如果已记录,则使页面可见。
  4. 如果不是,则更改为 index.html

但是,这只是向未登录的人隐藏一个页面,并不是很安全。它仍然可以从 URL 获取 HTML 纯代码。

于 2013-02-19T09:01:35.777 回答
0

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

jQuery(document).on('mobileinit', function(){ jQuery.mobile.autoInitializePage = false; });
于 2014-12-08T16:15:12.693 回答