原理:
通过$(document).bind("pagebeforechange", handleChangePage);来绑定pagebeforechange事件的触发函数handleChangePage(e,data)。页面跳转时pagebeforechange事件会被触发两次,第一次触发时data.toPage是到达页面的url,类型是string,第二次触发时data.toPage不是String类型 ,此时可以获取到达页面的信息。为了获得到达页面的信息,所以我们需要获得第二次触发时候的event,可以简单通过if(typeof data.toPage != “string”)来判断,这时候可以用e.target.baseURI来获取到达页面的URI,并通过这个URI来解析出附带的参数信息。然后通过e.target.find(“pageId”)来获取到达页的相应组件,并进行相应的操作。
相关方法
function beforechange(e, data) {
if (typeof data.toPage != "string") {
var url = $.mobile.path.parseUrl(e.target.baseURI)
var re = 'details.html';
if (url.href.search(re) != -1) {
var page = $(e.target).find("#detailsPage");
var d = data.options.data;
var data = getUrlParam(url.href);
page.find("#nameDiv").html(decodeURIComponent(data[0]));
page.find("#timeDiv").html(decodeURIComponent(data[1]));
page.find("#contentDiv").html(decodeURIComponent(data[2]));
}
}
}复制代码
解析URL参数的js方法:
function getUrlParam(string) {
var obj = new Array();
if (string.indexOf("?") != -1) {
var string = string.substr(string.indexOf("?") + 1);
var strs = string.split("&");
for(var i = 0; i < strs.length; i ++) {
var tempArr = strs[i].split("=");
obj[i] = tempArr[1];
}
}
return obj;
}复制代码