今天碰到在做一个动态页面的时候,需要用到 URL
的参数值来作判断,从而决定某一块内容在当前页面是否显示。例如exampe.html?parm1=xxx&parm2=xxx&parm3=xxx&…,在这里就需要获取.html后面的所有参数的值。
脑子里的第一个想法是利用“&”符号分割
URL ,从而达到获取参数值的目的。
同时在网上搜了下,实地操作后,记录如下。
方法一:
在某一块内容的 div 标签后面,加入如下 Javascript 代码:
代码如下 复制代码
<script
type="text/javascript">
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)",
"i");
var r = document.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return
null;
}
if(getQueryString("parm1") != null) {
document.getElementById("xxxx").style.display =
"none";
}
</script>
更多详细内容请查看:http://www.111cn.net/wy/js-ajax/56850.htm
这里用到的判断就是,根据 parm1 的值来决定是否显示 id 为 xxxx 这一块 div
区域。
此处用到的正则表达式解释:
以&开始或直接以name开始;以&结束或直接结束;name的值是由0到多个不是&的字符组成;”i”是忽略大小写!
方法二:
这是一个获取 URL 带 questring 参数的Javascript客户端解决方案。
代码如下 复制代码
<script
type="text/javascript">
function GetRequest() {
var url =
location.search; //获取url中"?"符后的字串
var theRequest = new
Object();
if (url.indexOf("?") != -1) {
var str =
url.substr(1);
if (str.indexOf("&") != -1) {
strs
= str.split("&");
for (var i = 0; i < strs.length; i++)
{
theRequest[strs[i].split("=")[0]] =
unescape(strs[i].split("=")[1]);
}
} else
{
theRequest[str.split("=")[0]] =
unescape(str.split("=")[1]);
}
}
return
theRequest;
}
</script>
调用此函数的方法:
代码如下 复制代码
<script type="text/javascript">
var
Request = new Object();
Request = GetRequest();
var
parm1,parm2,parm3,parmN;
parm1 = Request[‘parm1‘];
parm2 =
Request[‘parm2‘];
parm3 = Request[‘parm3‘];
parmN =
Request[‘parmN‘];
</script>