2013-07-16 25 views
1

我对jQuery和jQuery Mobile完全陌生,并且遇到了问题。我有两个html页面,其中一个是项目列表。每个项目链接到主页面,并将?id = xxx添加到url。主要页面读取ID,并使用下面的代码提供内容:jQuery Mobile:如何阅读查询字符串参数每次页面加载?

 $.urlParam = function(name){ 
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
    return results[1] || 0; 
    } 

我然后使用

console.log($.urlParam('id')); 

第一次加载页面的ID是正确的打印ID到控制台。当我加载列表并选择不同的项目时,URL中的id发生变化,但是与之前相同的id被打印到控制台并且内容不会更新。我认为这个问题可能与缓存有关。我试过使用不同的函数(没有RegExp)来读取id,但是它会产生相同的问题。

谢谢!

+0

你什么时候调用这个'urlParam'? – krishgopinath

+0

是的,请解释当你要求的网址。 – James

+0

在加载页面内容的脚本开始时调用urlParam。 – user2573644

回答

0
Why don't you use session storage (if its a mobile website) on the click event of the list item store this selected id into session storage and on the main page live get it back from storage, so you need not pass using query string, generally passing from query string is not safe, and you have limitations on how much data you can pass. 
+0

谢谢,很好的建议,但我实际上通过在脚本中的函数之间传递变量来解决此问题,以便不需要查询字符串参数。 – user2573644

+0

太棒了!考虑一下你有一个列表页面和一个详细信息页面的情况,当你从列表导航到详细信息页面时,如果我们从函数传递参数然后在详细信息页面上进行刷新或重新加载细节页面,参数值。这种情况特别发生在有移动网站时,因此我们继续进行会话存储,以便详细信息页面可以独立获取参数。 – Sheetal

+0

我不认为刷新/重新加载经常发生在移动页面上。内容每周更新一次,页面只刷新是用户故意这样做的。我理解会话存储的使用,但变量是一个更简单的解决方案。 – user2573644

相关问题