从jquery mobile中的URL获取param值

时间:2012-06-29 11:15:48

标签: jquery jquery-mobile

我有一个名为servicesDetails.html的页面,其中包含链接。网址如下所示

../Myapp/servicesDetails.html?servicetype=Advanced&serviceid=1208

单击时链接会加载一个名为 audioListPage 的内部页面,其中包含一些参数,链接看起来像这样

<a href="#audioListPage?audioid=123&audiotype=mp3" class="loadAudio" data-role="button" data-mini="true" data-inline="true">

加载audioListPage后,网址将更改为

../Myapp/servicesDetails.html?servicetype=Advanced&serviceid=1208#audioListPage?audioid=123&audiotype=mp3

我需要在加载audioListPage时显示带有audioid和audiotype的用户,我该怎么做?

根据下面的评论,我尝试了这个

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

$('#audioListPage').live('pagecreate',function(event) {
   console.log($.urlParam('audioid '));//this is giving me an error
});

我检查了错误发生的原因,发现window.location.href只给了我 ../Myapp/servicesDetails.html?servicetype=Advanced&ser​​viceid=1208,而不是更新的URL。我不确定我是否在正确的事件中调用$ .urlParam()

2 个答案:

答案 0 :(得分:0)

您只需解析window.location.hash

即可

见这个例子:

How can I get query string values in JavaScript?

并替换window.location.search

window.location.hash

答案 1 :(得分:0)

jQM文档建议使用其中一个插件作为参数:

  

jQuery Mobile不支持传递查询参数   内部/嵌入页面,但您可以添加两个插件   您的项目是否支持此功能。有一个轻量级的page params plugin和功能更全面的jQuery Mobile router plugin   用于backbone.js或spine.js。

文档:(请参阅已知限制部分)