Hãy xem bài viết MDN về window.location
.
QueryString có sẵn trong window.location.search
.
Giải pháp cũng hoạt động trong các trình duyệt cũ
MDN cung cấp một ví dụ (không còn có sẵn trong bài viết tham chiếu ở trên) về cách lấy giá trị của một khóa duy nhất có sẵn trong QueryString. Một cái gì đó như thế này:
function getQueryStringValue (key) {
return decodeURIComponent(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURIComponent(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
}
// Would write the value of the QueryString-variable called name to the console
console.log(getQueryStringValue("name"));
Trong các trình duyệt hiện đại
Trong các trình duyệt hiện đại, bạn có thuộc searchParams
tính của giao diện URL, giao diện này trả về một đối tượng URLSearchParams . Đối tượng trả về có một số phương thức thuận tiện, bao gồm một phương thức get. Vì vậy, tương đương với ví dụ trên sẽ là:
let params = (new URL(document.location)).searchParams;
let name = params.get("name");
Các URLSearchParams giao diện cũng có thể được sử dụng để phân tích chuỗi trong một định dạng chuỗi truy vấn, và biến chúng thành một đối tượng URLSearchParams tiện dụng.
let paramsString = "name=foo&age=1337"
let searchParams = new URLSearchParams(paramsString);
searchParams.has("name") === true; // true
searchParams.get("age") === "1337"; // true
Lưu ý rằng hỗ trợ trình duyệt vẫn còn hạn chế trên giao diện này, vì vậy nếu bạn cần hỗ trợ các trình duyệt cũ, hãy sử dụng ví dụ đầu tiên hoặc sử dụng polyfill .