ในการพัฒนาเว็บ JavaScript มักจะใช้เพื่อรับข้อมูล URL URL ของหน้าปัจจุบัน นี่คือบทสรุปสั้น ๆ ของฉันในการได้รับข้อมูล URL
มายกตัวอย่าง URL แล้วรับส่วนประกอบ: http://i.cnblogs.com/editposts.aspx?opt=1
1. window.location.href (ตั้งค่าหรือรับ URL ทั้งหมดเป็นสตริง)
var test = window.location.href;
การแจ้งเตือน (ทดสอบ);
return: http://i.cnblogs.com/editposts.aspx?opt=1
2. window.location.protocol (ส่วนโปรโตคอลของการตั้งค่าหรือรับ URL)
test var = window.location.protocol;
การแจ้งเตือน (ทดสอบ);
return: http:
3. window.location.host (ตั้งค่าหรือรับส่วนโฮสต์ของ URL)
var test = window.location.host;
การแจ้งเตือน (ทดสอบ);
กลับไปที่: i.cnblogs.com
4. window.location.port (ตั้งค่าหรือรับหมายเลขพอร์ตที่เกี่ยวข้องกับ URL)
test var = window.location.port;
การแจ้งเตือน (ทดสอบ);
return: อักขระที่ว่างเปล่า (หากใช้พอร์ต 80 ค่าเริ่มต้น (อัปเดต: แม้ว่า: เพิ่ม: 80) ค่าส่งคืนไม่ใช่ค่าเริ่มต้น 80 แต่เป็นอักขระที่ว่างเปล่า)
5. window.location.pathName (ตั้งค่าหรือรับส่วนพา ธ ด้วย URL (นั่นคือที่อยู่ไฟล์))
var test = window.location.pathName;
การแจ้งเตือน (ทดสอบ);
return: /editposts.aspx
6. window.location.search (ตั้งค่าหรือรับส่วนหนึ่งของแอตทริบิวต์ HREF ที่เป็นไปตามเครื่องหมายคำถาม)
var test = window.location.search;
การแจ้งเตือน (ทดสอบ);
return:? opt = 1
PS: รับส่วนการสืบค้น (พารามิเตอร์) นอกเหนือจากการกำหนดค่าให้กับภาษาแบบไดนามิกแล้วเรายังสามารถให้หน้าคงที่และใช้ JavaScript เพื่อรับค่าของพารามิเตอร์ที่เราเชื่อว่าควร
7. window.location.hash (ตั้งค่าหรือรับเซ็กเมนต์หลังจากเครื่องหมายปอนด์ "#" ในแอตทริบิวต์ href)
var test = window.location.hash;
การแจ้งเตือน (ทดสอบ);
return: ตัวละครที่ว่างเปล่า (เพราะไม่มีใน URL)
8. JS รับค่าพารามิเตอร์ใน URL
1. กฎหมายปกติ
ฟังก์ชั่น getQueryString (ชื่อ) {var reg = ใหม่ regexp ('(^| &)' + ชื่อ + '= ([^&]*) (& | $)', 'i'); var r = window.location.search.substr (1) .match (reg); if (r! = null) {return unescape (r [2]); } return null;} // เรียกด้วยวิธีนี้: การแจ้งเตือน (getQueryString ("ชื่อพารามิเตอร์ 1")); การแจ้งเตือน (getQueryString ("ชื่อพารามิเตอร์ 2")); การแจ้งเตือน (getQueryString ("ชื่อพารามิเตอร์ 3"));2. วิธีแยกแยก
ฟังก์ชั่น getRequest () {var url = location.search; // รับสตริงหลังจาก "?" อักขระใน url var therequest = new Object (); if (url.indexof ("?")! = -1) {var str = url.substr (1); strs = str.split ("&"); สำหรับ (var i = 0; i <strs.length; i ++) {redquest [strs [i] .split ("=") [0]] = unescape (strs [i] .split ("=") [1]); }} return retherequest;} var request = new Object (); request = getRequest (); <br> // var id = คำขอ ["id"]; // พารามิเตอร์ var 1, พารามิเตอร์ 2, พารามิเตอร์ 3, พารามิเตอร์ n; // พารามิเตอร์ 1 = คำขอ ['พารามิเตอร์ 1']; // พารามิเตอร์ 2 = คำขอ ['พารามิเตอร์ 2']; // พารามิเตอร์ 3 = คำขอ ['พารามิเตอร์ 3']; // พารามิเตอร์ n = คำขอ ['พารามิเตอร์ n'];3. กำหนดให้ใช้
ตัวอย่างเช่น URL: http://i.cnblogs.com/?j=js หากเราต้องการรับค่าของพารามิเตอร์ J เราสามารถเรียกมันผ่านฟังก์ชั่นต่อไปนี้
ฟังก์ชั่น getQueryString (ชื่อ) {var reg = ใหม่ regexp ("(^| &)" + ชื่อ + "= ([^&]*) (& | $)", "i"); var r = window.location.search.substr (1) .match (reg); // รับสตริงหลังจาก "?" ตัวละครใน URL และจับคู่กับบริบท var เป็นประจำ = ""; ถ้า (r! = null) บริบท = r [2]; reg = null; r = null; กลับไปบริบท == null || บริบท == "" || บริบท == "ไม่ได้กำหนด"? "" : บริบท; } Alert (getQueryString ("J"));4. วิธีการรับพารามิเตอร์เดียว
ฟังก์ชั่น getRequest () {var url = location.search; // รับสตริงหลังจาก "?" อักขระใน URL ถ้า (url.indexof ("?")! = -1) {// ตัดสินว่ามีพารามิเตอร์ var str = url.substr (1); // จากตัวละครตัวแรกเพราะ 0th คือ? สัญญาณเพื่อรับสตริงทั้งหมดยกเว้นเครื่องหมายคำถาม strs = str.split ("="); // แยกด้วยเครื่องหมายเท่ากัน (เนื่องจากฉันรู้ว่ามีเพียงพารามิเตอร์เดียวฉันใช้เครื่องหมายเท่ากันโดยตรงเพื่อแยกออกจากกันหากมีพารามิเตอร์หลายตัวที่จะแยกด้วย & ลงชื่อแล้วใช้เครื่องหมายเท่ากัน) การแจ้งเตือน (STRS [1]); // ลงชื่อสมัครใช้พารามิเตอร์แรก (หากมีพารามิเตอร์หลายตัวก็ต้องมีการวนซ้ำ)}}ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์สำหรับทุกคนที่จะเข้าใจวิธีการรับข้อมูล URL URL ในหน้าปัจจุบัน