URL:search 屬性

Baseline 已廣泛支援

此特性已非常成熟,可在多種裝置和瀏覽器版本上使用。自 ⁨2016 年 9 月⁩以來,它已在各大瀏覽器中可用。

注意:此功能在 Web Workers 中可用。

URL 介面的 search 屬性是一個搜尋字串,也稱為查詢字串,它是一個包含 "?" 及其後面的 URL 引數的字串。如果 URL 沒有搜尋查詢,則此屬性包含一個空字串 ""

可以設定此屬性來更改 URL 的查詢字串。設定時,如果未提供,則會在提供的值前面新增一個 "?" 字首。將其設定為空字串 "" 會刪除查詢字串。

查詢在設定時會進行百分比編碼,但在讀取時不會進行百分比解碼。

現代瀏覽器提供了 URL.searchParams 屬性,可以輕鬆地從查詢字串中解析出引數。

字串。

示例

基本用法

js
const url = new URL(
  "https://mdn.club.tw/en-US/docs/Web/API/URL/search?q=123",
);
console.log(url.search); // Logs "?q=123"

與 searchParams 的互動

URL.searchParams 屬性將 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&param=my%20param");
console.log(url2.search); // "?search=1234&param=my%20param"
url2.searchParams.delete("search");
console.log(url2.search); // "?param=my+param"

規範

規範
URL
# dom-url-search

瀏覽器相容性

另見

  • 它所屬的 URL 介面。