分析
- ?参数:?aaa=true&bbb=false
- hash参数:#aaa=true&bbb=false
解析?参数方法
- 利用正则表达式 - 1 
 2
 3
 4
 5
 6
 7
 8- function getQueryString(name) { 
 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
 var r = decodeURI(window.location.search).substr(1).match(reg);
 if (r !== null) return unescape(r[2]);
 return null;
 }
 getQueryString('id');
- 利用字符串和数组方法(此方法和解析#参数一致,使用window.location.search) - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19- function getURLParam(strParamName){ 
 var strReturn='';
 var query = this.location.search.substring(1); //获取URL中?后面的部分
 if (query.length > 0){
 var params = query.split("&"); // 以&符号将参数字符串拆分成数组
 for (var i = 0 ; i < params.length ; i++){
 var pos = params[i].indexOf("=");
 var name = params[i].substring(0, pos); // 每个参数对的名称
 var value = params[i].substring(pos + 1); // 每个参数对的值
 if (name == strParamName) { // 找出需要的参数对的值
 strReturn = value;
 }
 }
 }
 return strReturn;
 }
 getURLParam('id');
 // 原理:利用location.search找到?后面的部分,利用&及split组合拆分成数组,利用=及substring解析出每个数组中的名称和值
解析hash参数方法
- 利用字符串和数组方法(此方法和解析?参数一致,使用window.location.hash)1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19function getURLHashParam(strParamName){ 
 var strReturn='';
 var query = this.location.hash.substring(1); //获取URL中#后面的部分
 if (query.length > 0){
 var params = query.split("&"); // 以&符号将参数字符串拆分成数组
 for (var i = 0 ; i < params.length ; i++){
 var pos = params[i].indexOf("=");
 var name = params[i].substring(0, pos); // 每个参数对的名称
 var value = params[i].substring(pos + 1); // 每个参数对的值
 if (name == strParamName) { // 找出需要的参数对的值
 strReturn = value;
 }
 }
 }
 return strReturn;
 }
 getURLHashParam('id');
 // 原理:利用location.hash找到#后面的部分,利用&及split组合拆分成数组,利用=及substring解析出每个数组中的名称和值