方法一:采用正则表达式获取地址栏参数
方法二:原生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
给你提供一个通用的函数
var getSearch = function( url , name ){if( !name ){
name = url
url = location.href
}
var rv = ''
url = url.indexOf('?') > -1 ? url.split('?')[1] : ''
if(url != ''){
var ls = url.split('&')
for(var i=0i<ls.lengthi++){
var ele = ls[i]
var kname = ele.split('=')[0] ||'',kvalue = ele.split('=')[1] || ''
if(kname === name){
rv = kvalue
break
}
}
}
return decodeURIComponent(rv)
}
//调用的时候就可以通过getSearch直接获得
//比如获得url中的name
function f1(){
var name = getSearch('name')
document.getElementById("d1").value=name
}