使用 location.search 定位参数的值

Posted

技术标签:

【中文标题】使用 location.search 定位参数的值【英文标题】:Get values of parameters from URL 【发布时间】:2015-01-04 08:31:09 【问题描述】:

我正在开发一个工具,它采用 URL 中的值参数并用它们做一些事情。

我的问题是,我似乎无法使用 document.location 来显示我所追求的具体值,例如:

www.examplesite.com?yourname=gilgilad

我想使用 document.location.search 并将其放入一个 var 中,我需要该 var 的值为“gilgilad”。

这甚至可以使用 location.search 吗?

【问题讨论】:

【参考方案1】:

location.search 将返回包括它在内的所有问号。所以有通用的js来获取第一个参数的值(即使url有更多的参数):

var desire = location.search.slice(1).split("&")[0].split("=")[1]

示例:让我们获取网址http://example.com?name=jon&country=us

    location.search 将等于 ?name=jon&country=us .slice(1) 跳过 ?,返回字符串的其余部分。 .split("&")[0] 将其拆分为两个字符串(name=joncountry=us) 并拿下第一个 .split("=")[1]name=jon 拆分为 namejon 并获取第二个。完成!

【讨论】:

这是一个很好的答案,尤其是考虑到搜索会抓取包括问号在内的 url 之后的所有内容这一事实。 @MatthewA.McFarland 等等。现在我真的不明白这个问题。他的意思是阅读还是设置location.search,你怎么看? nicael,我认为他说“放入 var”时是要设置 快速单行获取特定参数(此处为“referrer”):new Map(window.location.search.slice(1).split('&').map(q => q.split('='))).get('referrer')【参考方案2】:
let url = new URL('www.examplesite.com?yourname=gilgilad');
let searchParams = new URLSearchParams(url.search);
console.log(searchParams.get('yourname'));

您也可以直接考虑window.locationwindow.location.search用户

let searchParams = new URLSearchParams(window.location.search);
console.log(searchParams.get('yourname'));

【讨论】:

【参考方案3】:

拆分 location.search 查询参数并将它们转换为对象的更通用的解决方案:

var a = location.search.split("&");
var o = a.reduce(function(o, v) 
    var kv = v.split("=");
    kv[0] = kv[0].replace("?", "");
    o[kv[0]] = kv[1];
    return o;
    ,
);

【讨论】:

【参考方案4】:

使用 document.location.search 制作?yourname=gilgilad

window.location.search = 'yourname=gilgilad';

这里是 jsfiddle:http://jsfiddle.net/t81k3bgc/

确保使用控制台,然后使用[run]。你会看见:

更多信息: https://developer.mozilla.org/en-US/docs/Web/API/Window.location#Example_.235.3A_Send_a_string_of_data_to_the_server_by_modifying_the_search_property.3A

【讨论】:

以上是关于使用 location.search 定位参数的值的主要内容,如果未能解决你的问题,请参考以下文章

Location search 属性

js-location

解析 location.search 对象以查找查询参数

ace admin 左侧菜单定位

js中window.location.search的用法和作用

js获取url地址的参数的方法