首页 > 专栏 > 前端 > 文章详情
使用 location 的 search 方法查询地址并解析字符串,返回一个对象 发布于:2021-02-24 10:24:19   原创发表   查看:4  讨论:0
//使用location.search查询解析字符串,然后返回包含所有参数的一个对象5aV易塔云建站-模板下载,web开发资源,技术博客
function getQueryStringArgs(){5aV易塔云建站-模板下载,web开发资源,技术博客
    //取得查询字符串并去掉开头的问号5aV易塔云建站-模板下载,web开发资源,技术博客
    var qs = (location.search.length > 0) ? location.search.substring(1) : "",5aV易塔云建站-模板下载,web开发资源,技术博客
    //保存数据的对象5aV易塔云建站-模板下载,web开发资源,技术博客
    args = {},5aV易塔云建站-模板下载,web开发资源,技术博客
    //取得每一项5aV易塔云建站-模板下载,web开发资源,技术博客
    items = qs.length ? qs.split("&") : [],5aV易塔云建站-模板下载,web开发资源,技术博客
    item = null,5aV易塔云建站-模板下载,web开发资源,技术博客
    name = null,5aV易塔云建站-模板下载,web开发资源,技术博客
    value = null,5aV易塔云建站-模板下载,web开发资源,技术博客
    //在for循环中使用5aV易塔云建站-模板下载,web开发资源,技术博客
    i = 0,5aV易塔云建站-模板下载,web开发资源,技术博客
    len = items.length;5aV易塔云建站-模板下载,web开发资源,技术博客
    //逐个将每一项添加到args对象中5aV易塔云建站-模板下载,web开发资源,技术博客
    for(i=0; i<len; i++){5aV易塔云建站-模板下载,web开发资源,技术博客
        item = items[i].split("=");5aV易塔云建站-模板下载,web开发资源,技术博客
        name = decodeURIComponent(item[0]);5aV易塔云建站-模板下载,web开发资源,技术博客
        value = decodeURIComponent(item[1]);5aV易塔云建站-模板下载,web开发资源,技术博客
        if(name.length){5aV易塔云建站-模板下载,web开发资源,技术博客
            args[name] = value;5aV易塔云建站-模板下载,web开发资源,技术博客
        }5aV易塔云建站-模板下载,web开发资源,技术博客
    }5aV易塔云建站-模板下载,web开发资源,技术博客
    return args;5aV易塔云建站-模板下载,web开发资源,技术博客
}
由于一开始写成了args.name=value,但是这样就相当于把name作为一个字符串了,而不是name实际代表的值,所以要使用args[name]的方式。请问这里大家都是这样处理的吗?

评论

  • 匿名