【问题标题】:Pass parameters in JQM- page refresh在 JQM 中传递参数 - 页面刷新
【发布时间】:2013-06-15 04:18:28
【问题描述】:

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

【问题讨论】:

  • 您使用的是单页还是多页?

标签: jquery-mobile


【解决方案1】:

您可以将 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

【讨论】:

    【解决方案2】:

    解决此问题的方法是检查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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      相关资源
      最近更新 更多