jquery移动防止页面呈现

时间:2013-02-19 08:52:04

标签: javascript jquery-mobile

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

以下是添加代码的想法。

  1. 默认情况下在“home.html”中隐藏页面。
  2. 当“home_page”位于“pagebeforecreate”时检查登录。
  3. 如果记录,则使页面可见。
  4. 如果不是,请更改为index.html
  5. 但是,这只是隐藏了一个未登记的人的页面,不是很安全。 它仍然可以从URL获取HTML Plain代码。

答案 1 :(得分:0)

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

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