使用location.search定位参数的值

Gil*_*ald 4 javascript location

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

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

www.examplesite.com?yourname=gilgilad

我想使用document.location.search并将其放在var中,我需要var的值为"gilgilad".

甚至可以使用location.search吗?

nic*_*ael 12

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

var desire = location.search.slice(1).split("&")[0].split("=")[1]
Run Code Online (Sandbox Code Playgroud)

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

  1. location.search 将等于 ?name=jon&country=us
  2. '.slice(1)'跳过'?',返回字符串的其余部分.3 .split("&")[0]将它分成两个字符串(?name=jon和country=us)并取第一个字符串
  3. .split("=")[1]分裂name=jon成name并jon取出第二个.完成!


Mau*_*uro 6

let url = new URL('www.examplesite.com?yourname=gilgilad');
let searchParams = new URLSearchParams(url.search);
console.log(searchParams.get('yourname'));
Run Code Online (Sandbox Code Playgroud)

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

let searchParams = new URLSearchParams(window.location.search);
console.log(searchParams.get('yourname'));
Run Code Online (Sandbox Code Playgroud)