在JQM页面刷新中传递参数

时间:2013-06-15 04:18:29

标签: jquery-mobile

我将一个参数传递给一个页面,并使用data-url属性进行检索,它可以正常工作。但是,如果我刷新该页面,则url参数将不可用。应该怎么做呢。请帮助。

2 个答案:

答案 0 :(得分:1)

您可以将url参数存储在HTML5的localStorage中。通常,除了IE之外,所有浏览器(包括移动设备)都支持localStorage,因为它存在一些稳定性问题。

存储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

答案 1 :(得分:0)

此问题的解决方法是检查data("url")是否包含问号?。如果没有,您可以从window.location.href

中检索参数值

此代码:

$.mobile.changePage('car-details.html', {
    data: {
        id: 'my_id'
    }
});

创建网址:... / 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