如何在jQM页面之间存储变量?

如何在两个jQueryMobile页面之间传递像username这样的变量?

或者两个常规页面,将变量作为全局变得不起作用,因为在下一个include中它将变量设置为null。

如何在两个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; 

您可以通过查询字符串或客户端路由使用URL,也可以使用localStorage(假设它们位于同一个域中),或者您可以使用cookie。

如果您决定使用客户端路由,那么专门针对JQM的插件会与不同的JQM页面事件相关联

https://github.com/azicchetti/jquerymobile-router

只要在两个页面之间的超链接上禁用ajax,就可以在查询字符串中传递它。

 Next page 

你错过了jQuery移动转换的有益function,但至少你可以成功地在页面之间传递变量。

更新:

从文档 :

在页面之间传递参数

jQuery Mobile不支持将查询参数传递给内部/嵌入页面…

然后文档继续建议我没有尝试过的两个插件。 Page params插件和jquery移动路由插件 。

请务必查看上面链接的文档页面,了解为什么传递参数不起作用的解释,但如果你加载没有散列的页面(通过禁用ajax行为),那么你应该没问题 – 至少根据我的经验。

您可以使用与JQM存储其自己的配置相同的方式存储全局使用的变量。 只需在’mobileinit’的$ .mobile下创建自己的javascript对象,并将其用于全局变量:

     ...   ...  ...  

您可以在任何地方初始化全局变量,但’mobileinit’是JQM最早的初始化点。