获取url ?号后面的参数的几种方式

2018-01-25  本文已影响0人  小李子_前端

    search和hash的区别,如果URL中“?”之前有一个“#”比如:“http://localhost:63342/index.html#/version?type=35&id=5”那么使用window.location.search得到的就是空(“”)。因为“?type=35&id=5”串字符是属于“#/version?type=35&id=5”这个串字符的,也就是说查询字符串search只能在取到“?”后面和“#”之前的内容,如果“#”之前没有“?”search取值为空。

所以我做了一个通用的方法


方法 1:

function getQueryString() {

    var obg={},a='';

    (a=window.location.search.substr(1))||(a=window.location.hash.split('?')[1])

    a.split(/&/g).forEach(function(item){

        obg[(item=item.split('='))[0]]=item[1];

    })

    return obg

}

getQueryString();

方法 2:

function getQueryString(e) { //要传入key值

    var t = new RegExp("(^|&)" + e + "=([^&]*)(&|$)");

    var a = window.location.href.match(t);

    if (a != null) return a[2];

    return ""

}


上一篇下一篇

猜你喜欢

热点阅读