【发布时间】:2013-06-15 04:18:28
【问题描述】:
我将参数传递给页面,并使用 data-url 属性检索,它工作正常。但是,如果我刷新该页面,则 url 参数将不可用。为此应该怎么做。请帮忙。
【问题讨论】:
-
您使用的是单页还是多页?
标签: jquery-mobile
我将参数传递给页面,并使用 data-url 属性检索,它工作正常。但是,如果我刷新该页面,则 url 参数将不可用。为此应该怎么做。请帮忙。
【问题讨论】:
标签: jquery-mobile
您可以将 url 参数存储在 HTML5 的 localStorage 中。一般来说,localStorage 被所有浏览器(包括移动设备)支持,除了 IE,它存在一些稳定性问题。
要存储url参数,
window.localStorage.setItem("param", yourParam);
然后,检查该项目是否存在于localStorage,如果存在,则从那里获取并使用。
if(window.localStorage["param"] != undefined)
{
var param= window.localStorage["param"];
}
完整的工作流程
var param = "", local = window.localStorage;
if(local["param"] != undefined)
{
param = local["param"];
}
else
{
//store the param in a database/in the server session and retrieve from there.
param = getFromServer();
//set item in localStorage
local.setItem("param", yourParam);
}
欲了解更多信息,请访问此link
【讨论】:
解决此问题的方法是检查data("url") 是否包含问号?。如果没有,您可以从window.location.href 检索参数值。
这段代码:
$.mobile.changePage('car-details.html', {
data: {
id: 'my_id'
}
});
创建 URL:.../car-details.html?id=my_id
下面的代码处理了正常转换的情况和页面刷新的情况。在页面刷新的情况下,从window.location.href检索参数值
var passedId = (($(this).data("url").indexOf("?") > 0) ? $(this).data("url") : window.location.href ).replace( /.*id=/, "" );
如需完整示例,请查看StackOverflow answer
【讨论】: