原理: 通过$(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;
- }
复制代码
|