第一,正则表达式,直接找出参数等号右边的值即可。但是,如果该参数后还有&就不可行。 <script language="javascript"> var str=window.location.href; var es=/clid=/; es.exec(str); var right=RegExp.rightContext; if(right=="1") { sub_nav_4.style.display = "block"; li4.style.background = "#a1ca00"; } </script> 第二,把能找到的参数都付给argsarr数组,将来可以用argsarr[i]进行相应的访问,方法不错,太长,参数不容易记忆。 /**//** * 提取URL中的参数 */ function getArgs() { //加上substring的意义是去掉查询字符串中的?号。 //var query = window.location.search.substring(1); //定义一个数组,用于存放取出来的字符串参数。 var argsArr = new Object(); //获取URL中的查询字符串参数 var query = window.location.search; query = query.substring(1); //这里的pairs是一个字符串数组 var pairs = query.split("&");//name=myname&password=1234&sex=male&address=nanjing for(var i=0;i<pairs.length;i++) { var sign = pairs[i].indexOf("="); //如果没有找到=号,那么就跳过,跳到下一个字符串(下一个循环)。 if(sign == -1) { continue; } var aKey = pairs[i].substring(0,sign); var aValue = pairs[i].substring(sign+1); argsArr[aKey] = aValue; } return argsArr; } 第三,最简单的方法,类似第二种,不过没有创建数组存参数,可直接访问参数的名字,容易看懂。 <script language="javascript"> function getarg() { var url = unescape(window.location.href); var allargs = url.split("?")[1]; var args = allargs.split("&"); for(var i=0; i<args.length; i++) { var arg = args[i].split("="); eval('this.'+arg[0]+'="'+arg[1]+'";'); } } var urlarg=new getarg(); if(urlarg.clid=="1") { sub_nav_6.style.display = "block"; li6.style.background = "#a1ca00"; } </script> 转载于:https://www.cnblogs.com/ddr888/archive/2006/12/29/606915.html