方法一:采用正则表达式获取地址栏参数
方法二:原生js多次截取方法
推荐方法1,方便实用!
获取地址栏参数值http://www.xxx.com/index.html?ver=1.0&id=6#page1
getQueryVariable(ver)// 1.0
getQueryVariable(id) // 6
我们可以用javascript获得其中的各个部分
1、整个URl字符串(在浏览器中就是完整的地址栏 http://www.xxx.com/index.html?ver=1.0&id=6#page1 )
本例返回值: ( http://www.xxx.com/index.html?ver=1.0&id=6#page1 )
2、URL 的协议部分 ( http://www.xxx.com/index.html?ver=1.0&id=6#page1 )
本例返回值:http:
3、URL 的主机部分 ( http://www.xxx.com/index.html?ver=1.0&id=6#page1 )
本例返回值: www.xxx.com
4、URL 的端口部分 ( http:192.168.1.152:8080/index.html)
如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
本例返回值:"8080"
5、URL 的路径部分( http://192.168.1.145/community/page/index.html?categoryId=#page3 )
本例返回值:/community/page/index.html
6、查询(参数)部分
除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值
本例返回值:?ver=1.0&id=6
7、锚点 ( http://192.168.1.145/community/page/index.html?categoryId=#page3 )
本例返回值:#page3
我下面的JS代码可以在浏览器上输出所有的参数和值,没有参数的时候输出“没有参数”:<script language="javascript">
var url=window.location.search
if(url.indexOf("?")!=-1)
{
var str = url.substr(1)
strs = str.split("&")
for(i=0i<strs.lengthi++)
{
document.write([strs[i].split("=")[0]],'=',unescape(strs[i].split("=")[1]),'<br>')
}
}else document.write('没有参数')
</script>
你现在需要获取id的值,很简单,把我的程序代码改成如下:
<script language="javascript">
var id=''
var url=window.location.search
if(url.indexOf("?")!=-1)
{
var str = url.substr(1)
strs = str.split("&")
for(i=0i<strs.lengthi++)
{
if([strs[i].split("=")[0]]=='id') id=unescape(strs[i].split("=")[1])
}
}
</script>