如何在兩個jQueryMobile頁面之間傳遞類似用戶名的變量?如何在jQM頁面之間存儲變量?
或兩個常規頁面,變量作爲全局不起作用,因爲在下一個包含它將設置變量回到空。
如何在兩個html頁面之間傳遞一個變量全局變量?
如何在兩個jQueryMobile頁面之間傳遞類似用戶名的變量?如何在jQM頁面之間存儲變量?
或兩個常規頁面,變量作爲全局不起作用,因爲在下一個包含它將設置變量回到空。
如何在兩個html頁面之間傳遞一個變量全局變量?
我通常與本地存儲去,你可以存儲對象太紐帶。例如:
var userInfo = {
"username": "Bob",
"roleName": "Admin",
"image": "img/userPic.jpg",
};
//Store the object in local storage
localStorage.setItem('loggedUser', JSON.stringify(userInfo));
那麼其他頁面上,你可以簡單地做:
var userInfo = JSON.parse(localStorage.getItem("loggedUser"));
var userName = userInfo.username;
我在考慮使用localStorage,我想避免查找localStorage,因爲我將不得不使用相同的數據很多次。我想知道appcache是否有一個機制來存儲變量,因爲應用程序需要脫機工作... localStorage可能是更簡單的解決方案。謝謝。 – Astronaut
只要您在兩個頁面之間的超鏈接上禁用了Ajax,就可以將它傳遞給查詢字符串。
<a href="nextPage.php?username=joe" data-ajax="false">Next page</a>
您錯過了jQuery移動轉換的有益特性,但至少可以成功地在頁面之間傳遞變量。
更新:
傳遞頁面之間參數:
jQuery Mobile的不支持查詢參數傳遞給內部/嵌入式網頁...
文檔然後繼續建議兩個插件,我還沒有嘗試過。 Page params plugin和jquery mobile routing plugin。
請務必查看上面鏈接的文檔頁面,以解釋爲什麼傳遞參數不應該工作,但如果您在沒有散列的情況下加載頁面(通過禁用ajax行爲),那麼您應該沒問題 - 至少在我的經驗中。
在同一頁面中,它們共享相同的上下文,因此這裏沒有問題。只有我需要訪問用戶ID才能執行對websql數據庫的查詢,問題就變得很明顯。我試圖查看文檔。謝謝。 – Astronaut
@AdamSurfari;我不確定你是什麼意思;我的回答(開頭)是指將用戶名傳遞給第二頁。我可能是錯的,但我將文檔解釋爲意味着所有網站頁面都是「內部」的,而不同服務器上的所有內容都是「外部」的。因此,通過關閉默認行爲('data-ajax =「false」'),您可以將參數傳遞到第二頁。否則,第二個「內部」頁面將使用特殊的jquery移動框架加載,其中查詢參數可能會在所描述的方法中丟失。 – veeTrain
您可以通過查詢字符串或客戶端路由使用URL,您可以使用localStorage(假設它們位於同一個域中),也可以使用cookie。
如果你決定使用客戶端路由存在於JQM在專門的插頭與不同的JQM頁面事件
感謝您看到有趣的鏈接。 – Astronaut
您可以存儲全局變量使用相同的方法JQM存儲自己的配置。在「mobileinit」下$。移動剛剛創建自己的JavaScript對象,並用它爲你的全局變量:
<!DOCTYPE html>
<html>
<head>
...
<script> //position before jqery.mobile.js is important for 'mobileinit' to fire
$(document).on("mobileinit", function(event) {
//create global variable storage
$.mobile.YourApplicationNameHere = {};
//use it like this anywhere in your code:
$.mobile.YourApplicationNameHere.globalVar1 = 1;
$.mobile.YourApplicationNameHere.globalVar2 = 2;
console.log("globalVar1 = " + $.mobile.YourApplicationNameHere.globalVar1);
});
</script>
<script src="jquery/jquery.mobile-1.4.5.min.js"></script>
...
</head>
...
</html>
您可以在任何地方初始化的全局變量,但「mobileinit」是JQM的最早的初始點。
您可以使用cookie。 –
我以爲jQuery Mobile是關於單頁面應用程序的。 – Pointy
@Pointy JQM提取外部頁面並將其附加到DOM,但可用於多頁面應用程序http://jquerymobile.com/demos/1.1.0/docs/pages/page-anatomy。html – Jack