经常碰见一些HTML静态页,也像动态页一样在后面跟着诸如?id=xxx&item=vvv等类型的参数或变量。很久以前开始见到的时候,还以为HTML被映射成动态解析类型了呢(如可以映射成asp),查看过源代码后,才知道是用JavaScript来实现的。因为需要将旧域名地址转换成新域名,而旧域名中多数页面是静态的,所以就需要这段代码,因此就顺利再研究一下。
首先看一下这段代码:
<script type="text/javascript">
var hrefstr,isCN;
hrefstr = window.location.href;
isCN = hrefstr.indexOf("blog.aixianwei.cn");
if (isCN>0)
{window.location.href = hrefstr.replace(/blog.aixianwei.cn/, "blog.0898888.com")}
</script>
这段代码由window.location.href获得当前网址的URL,赋值给hrefstr,然后indexOf查找是否存在参数中的字符串(blog.aixianwei.cn),如果存在就将URL中的字符串替换为(blog.0898888.com),浏览器便会解析实现跳转,如果不存在就什么都不做。
再看一段代码:
<script language=javascript>
<!--
var hrefstr,pos,parastr;
hrefstr = window.location.href;
pos = hrefstr.indexOf("?");
parastr = hrefstr.substring(pos+1);
if (pos>0){
document.write("所有参数:"+parastr);
} else {
document.write("无参数");
}
//-->
</script>
这段代码获取"?"后所有参数变量。
最后一段代码:
<script language=javascript>
<!--
function getparastr(strname) {
var hrefstr,pos,parastr,para,tempstr;
hrefstr = window.location.href;
pos = hrefstr.indexOf("?")
parastr = hrefstr.substring(pos+1);
para = parastr.split("&");
tempstr="";
for(i=0;i<para.length;i++)
{
tempstr = para;
pos = tempstr.indexOf("=");
if(tempstr.substring(0,pos) == strname) {
return tempstr.substring(pos+1);
}
}
return null;
}
// 获取program参数
var programstr = getparastr("program");
document.write(programstr);
//-->
</script>
这段代码获取"?"后某一特定参数变量。 |