思路:根据浏览器地址,截取?以前的url做为head,而后把url后面的参数解析为object对象,再根据传入的参数对象,重置参数对象,最后从新拼接urljava
JS:浏览器
/** * 更新panel的url * @returns */ function refreshPanelUrlFun(){ var href = window.location.href; var newUrl = getNewUrlParms(href,{"id":rprjInfoId}); var tab = window.parent.$("#mainTabs").tabs('getSelected'); tab.panel("options")["href"] = newUrl; }
/** * 获取新的url * @param obj 新的参数值构成的对象 * @returns */ function getNewUrlParms(url,obj) { var theRequest = new Object(); if (!url) url = location.href; //根据请求url,把?后面携带的参数解析为object对象 if (url.indexOf("?") !== -1) { var str = url.substr(url.indexOf("?") + 1) + "&"; var strs = str.split("&"); for (var i = 0; i < strs.length - 1; i++) { var key = strs[i].substring(0, strs[i].indexOf("=")); var val = strs[i].substring(strs[i].indexOf("=") + 1); theRequest[key] = val; } } //根据传入的最新的参数对象obj,来重置theRequest的参数值 for(var key in obj){ theRequest[key] = obj[key]; } var head = url.substr(0,url.indexOf("?")); var appendUrl = $.param(theRequest); var newUrl = head+"?"+appendUrl; //返回新的url return newUrl; }