URL: searchParams 属性
注意:此功能在 Web Workers 中可用。
URL 接口的 searchParams 只读属性返回一个 URLSearchParams 对象,该对象允许访问 URL 中包含的已解码的 GET 查询参数。
值
一个 URLSearchParams 对象。
示例
基本用法
js
const params = new URL("https://example.com/?name=Jonathan%20Smith&age=18")
.searchParams;
const name = params.get("name");
const age = parseInt(params.get("age"), 10);
console.log(`name: ${name}`); // name: Jonathan Smith
console.log(`age: ${age}`); // age: 18
与 search 的交互
searchParams 属性将 URL.search 字符串公开为 URLSearchParams 对象。当更新此 URLSearchParams 时,URL 的 search 会随着其序列化而更新。然而,URL.search 编码的字符子集与 URLSearchParams 编码的字符子集不同,并且它将空格编码为 %20 而不是 +。这可能会导致一些令人意外的交互——如果你更新 searchParams,即使使用相同的值,URL 的序列化方式也可能不同。
js
const url = new URL("https://example.com/?a=b ~");
console.log(url.href); // "https://example.com/?a=b%20~"
console.log(url.searchParams.toString()); // "a=b+%7E"
// This should be a no-op, but it changes the URL's query to the
// serialization of its searchParams
url.searchParams.sort();
console.log(url.href); // "https://example.com/?a=b+%7E"
const url2 = new URL("https://example.com?search=1234¶m=my%20param");
console.log(url2.search); // "?search=1234¶m=my%20param"
url2.searchParams.delete("search");
console.log(url2.search); // "?param=my+param"
规范
| 规范 |
|---|
| URL # dom-url-searchparams |
浏览器兼容性
加载中…