js操作url的代码
来源:互联网 发布:实用的软件项目 编辑:程序博客网 时间:2024/05/20 08:41
//=============================================URL操作 Start=============================================var StringToAscii = function(str) { return str.charCodeAt(0).toString(16); }var AsciiToString = function(asccode) { return String.fromCharCode(asccode); }/* Url编码 */function SetUrlEncode(unzipStr) { var zipstr = ""; var strSpecial = "!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; var tt = ""; for (var i = 0; i < unzipStr.length; i++) { var chr = unzipStr.charAt(i); var c = StringToAscii(chr); tt += chr + ":" + c + "n"; if (parseInt("0x" + c) > 0x7f) { zipstr += encodeURI(unzipStr.substr(i, 1)); } else { if (chr == " ") zipstr += "+"; else if (strSpecial.indexOf(chr) != -1) zipstr += "%" + c.toString(16); else zipstr += chr; } } return zipstr;}/* Url解码 */function SetUrlDecode(zipStr) { var uzipStr = ""; for (var i = 0; i < zipStr.length; i++) { var chr = zipStr.charAt(i); if (chr == "+") { uzipStr += " "; } else if (chr == "%") { var asc = zipStr.substring(i + 1, i + 3); if (parseInt("0x" + asc) > 0x7f) { uzipStr += decodeURI("%" + asc.toString() + zipStr.substring(i + 3, i + 9).toString()); i += 8; } else { uzipStr += AsciiToString(parseInt("0x" + asc)); i += 2; } } else { uzipStr += chr; } } return uzipStr;} //在当前url地址后面添加时间戳,构造新增的url地址function SetUrlRefresh(url) { if (url.indexOf("?") > 0) return url + "&t=" + (new Date().getTime()); else return url + "?t=" + (new Date().getTime());} /// <summary>/// 构造一个地址栏参数对象,把获取的参数存入此对象中,类似数组/// </summary>///<remarks>///如:http://localhost:4838/Joan_Web/test.aspx?fds=153&fdaf=1mlk///则会得到:/// fds="153"/// fdaf="1mlk"/// getallparameter="fds=153&fdaf=1mlk"///</remarks>function UrlSearch() { //重复时只取最后一个 var name, value; var str = window.location.href; //取得整个地址栏 var num = str.indexOf("?") str = str.substr(num + 1); //取得所有参数 var arr = str.split("&"); //各个参数放到数组里 for (var i = 0; i < arr.length; i++) { num = arr[i].indexOf("="); if (num > 0) { name = arr[i].substring(0, num); value = arr[i].substr(num + 1); this[name] = value; } } this["getallparameter"] = str;} var RQ = new UrlSearch(); //实例化 //获取url参数名值对,如:&str=123function GetUrlParamAndValue(parameter) { eval("var temp=RQ." + parameter); //用eval去执行字符串js if ((typeof (temp) == "string") && (typeof (temp) != null)) { return "&" + parameter + "=" + temp.replace(/(^\s*)|(\s*$)/g, ""); } else return "";} //获得url地址栏对应参数名的参数值function GetUrlQueryValueByName(pName) { var reg = new RegExp("(^|&)" + pName + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return "";}/*function GetUrlParameter(pname) { var query = location.search.substring(1); var qq = ""; params = query.split("&"); if (params.length > 0) { for (var n in params) { var pairs = params[n].split("="); if (pairs[0] == pname) { qq = pairs[1]; break; } } } return qq;}*/ //获取锚点function GetUrlAnchor() { var str = window.location.href; var num = str.indexOf("#") str = str.substr(num + 1); return str;} /*获取当前页页码*/function GetThisPageIndex() { var r = /^[1-9][0-9]*$/; if (GetUrlQueryValueByName('pageindex') == '') return 1; if (r.test(GetUrlQueryValueByName('pageindex'))) return parseInt(GetUrlQueryValueByName('pageindex')); else return 1;}//获取URL主机头function GetUrlHost() { if (document.URL.substr(0, 7) == 'http://') return 'http://' + window.location.host; else return 'https://' + window.location.host;}//=