js:app
/** * 获取请求url中的全部参数的object对象 * @returns */ function getAllUrlParms(url) { var theRequest = new Object(); if (!url) url = location.href; 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; } } return theRequest; }
根据参数判断url是否相同,并重构新的url:url
function checkUrlFun(oldUrl,paramObj,newUrl){ var returnUrl = ""; var updateFlag = false; if(!oldUrl || oldUrl == 'about:white'){ //页面尚未加载过,利用newUrl拼接paramObj,而且返回 updateFlag = true; }else{ //页面已经加载过 var obj = getAllUrlParms(oldUrl); if(paramObj && JSON.stringify(paramObj) != '{}'){ for(var key in paramObj){ //若是老的url里面和paramObj里面有参数不一样,那么须要构建新的url if(!obj[key] || obj[key] != paramObj[key]){ updateFlag = true; break; } } } } if(updateFlag){ var index = newUrl.indexOf("?"); if(index != -1){ newUrl = newUrl.substring(0,index); } var appendUrl = $.param(paramObj); newUrl += "?"+appendUrl; returnUrl = newUrl; } return returnUrl ; }
根据paramObj设置页面的全局变量的值:code
/** * 修改页面默认变量的值 * @returns */ function changeVariableValueFun(paramObj){ if(paramObj && JSON.stringify(paramObj) != '{}'){ for(var key in paramObj){ var val = key.replace("object.",""); window[val] = paramObj[key]; $('#'+val).val(paramObj[key]); } } }