js根据url查询字符串里的键名获取其值

先来运行结果

技术分享

下面是页面代码

testJsGetUrlAttribute.html

<script>
var rout = getUrlAttribute(‘rout‘);
if(null!=rout)
{
    alert(rout);
}
/**
 * 20150514 14:30
 * 作者:Ro
 * 根据url查询字符串里的键名获取其值
 */
function getUrlAttribute(parameName) 
{
    //location.search是从当前URL的?号开始的字符串,即查询字符串
    var query = (location.search.length > 0 ? location.search.substring(1) : null);
    if(null!=query)
    {
        var args = new Object( );
        var pairs = query.split("&"); 
        for(var i = 0; i < pairs.length; i++) 
        {
            var pos = pairs[i].indexOf("="); 
            if (pos == -1) 
                continue; 
            var argname = pairs[i].substring(0,pos); 
            var value = pairs[i].substring(pos+1); 
            value = decodeURIComponent(value); 
            args[argname] = value; 
        }
        //根据键名获取值
        return args[parameName]; 
    }
    return null;
}
</script>

原理是用了javascript中的location对象,location对象提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。
location对象是很特别的一些对象,因为它既是window对象的属性,也是document对象的属性。
window.location和document.location引用的是同一个对象。
location对象的用处不只表现在它保存着当前文档的信息,还表现在它将URL解析为独立的片段,可以通过不同的属性访问这些片段。

下表为location对象的所有属性:
技术分享

虽然可以使用以上属性访问到location对象的大多数信息,但其中访问URL包含的查询字符串中的属性并不方便。
尽管location.search返回从问号到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。

所以,我创建了上面的函数,用以解析查询字符串,然后根据键名返回其值。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。