2013-02-19 74 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; });