JavaScript的URL searchParams不返回任何内容。

5

我正在尝试在最新版本的Chrome(75.0.3770.142)中运行此程序,但是我没有得到任何搜索参数。例如:

let params = (new URL("http://blah.com?q=something")).searchParams;

这只是返回了一个空对象,所以查询字符串还没有被解析。我尝试了多个示例,但它们都返回一个空对象。这里我做错了什么吗?


1
.searchParams.get("q") - user7290573
这是 URLSearchParams returning null for the first query string 的副本。 - Baljinder Singh
2个回答

5
为了获取所有URL参数,请尝试使用searchParams.toString()

var params = (new URL('http://blah.com?q=something')).searchParams.toString();
console.log(params);

要通过参数名称获取特定的值,请使用 searchParams.get('q'):

var params = (new URL('http://blah.com?q=something')).searchParams.get('q');
console.log(params);


1
好的,所以添加toString()已经返回了一个字符串,但我需要一个可迭代的东西。从阅读文档中得知,它应该返回一个对象? - Tony
它返回一个包含所有可用函数的对象。 - Koby Douek

1

您可以使用:

const url = "https://www.google.com/search?q=test&rlz=1C1CHBF_enVN867VN867&oq=test&aqs=chrome..69i57j69i60l4j69i61j69i60j69i65.1415j0j7&sourceid=chrome&ie=UTF-8";
const foo = new URL(url);
const searchParams = Object.fromEntries(Array(...foo.searchParams.entries()));
console.log(searchParams);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接