ดูบทความ MDNเกี่ยวกับwindow.location
.
QueryString มีอยู่ในwindow.location.search
.
โซลูชันที่ใช้งานได้กับเบราว์เซอร์เดิมเช่นกัน
MDN ให้ตัวอย่าง(ไม่มีอยู่ในบทความอ้างอิงด้านบนอีกต่อไป)เกี่ยวกับวิธีรับค่าของคีย์เดียวที่มีอยู่ใน QueryString สิ่งนี้:
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"));
ในเบราว์เซอร์สมัยใหม่
ในเบราว์เซอร์สมัยใหม่คุณมีsearchParams
คุณสมบัติของอินเทอร์เฟซ URL ซึ่งส่งคืนอ็อบเจ็กต์URLSearchParams อ็อบเจ็กต์ที่ส่งคืนมีวิธีการที่สะดวกหลายวิธีรวมถึง get-method ดังนั้นสิ่งที่เทียบเท่ากับตัวอย่างข้างต้นจะเป็น:
let params = (new URL(document.location)).searchParams;
let name = params.get("name");
URLSearchParamsอินเตอร์เฟซที่ยังสามารถใช้ในการแยกสายในรูปแบบสตริงการสืบค้นและเปิดให้เป็น URLSearchParams วัตถุที่มีประโยชน์
let paramsString = "name=foo&age=1337"
let searchParams = new URLSearchParams(paramsString);
searchParams.has("name") === true; // true
searchParams.get("age") === "1337"; // true
แจ้งให้ทราบว่าการสนับสนุนเบราว์เซอร์ยังมีข้อ จำกัด ในอินเตอร์เฟซนี้ดังนั้นหากคุณต้องการที่จะสนับสนุนเบราว์เซอร์เดิมติดกับตัวอย่างแรกหรือใช้polyfill