js:
/**
* 获取请求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:
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设置页面的全局变量的值:
/**
* 修改页面默认变量的值
* @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]);
}
}
}