มีสองวิธีในการรับพารามิเตอร์แถบที่อยู่ใน JS: ครั้งแรกคือการใช้นิพจน์ทั่วไปเพื่อให้ได้พารามิเตอร์แถบที่อยู่และอย่างที่สองเป็นวิธีที่ค่อนข้างดั้งเดิม ที่นี่บรรณาธิการแนะนำให้ใช้วิธีแรกซึ่งสะดวกและใช้งานได้จริง โปรดดูรายละเอียดด้านล่างสำหรับกระบวนการดำเนินการเฉพาะ
วิธีที่ 1: ใช้นิพจน์ทั่วไปเพื่อรับพารามิเตอร์แถบที่อยู่: (แนะนำเป็นอย่างยิ่งทั้งในทางปฏิบัติและสะดวก!)
ฟังก์ชั่น getQueryString (ชื่อ) {var reg = ใหม่ regexp ("(^| &)" + ชื่อ + "= ([^&]*) (& | $)"); var r = window.location.search.substr (1). -match (reg); if (r! = null) คืนค่า null;}// วิธีการโทร
การแจ้งเตือน (getQueryString ("ชื่อพารามิเตอร์ 1"));
การแจ้งเตือน (getQueryString ("ชื่อพารามิเตอร์ 2"));
การแจ้งเตือน (getQueryString ("ชื่อพารามิเตอร์ 3"));
นี่คือตัวอย่าง:
หาก URL ของแถบที่อยู่คือ: abc.html? id = 123 & url = http: //www.maidq.com
จากนั้น แต่คุณใช้วิธีการข้างต้นเพื่อโทร: แจ้งเตือน (getQueryString ("url"));
กล่องโต้ตอบจะปรากฏขึ้น: เนื้อหาคือ http://www.maidq.com
หากคุณใช้: Alert (getQueryString ("id")); จากนั้นเนื้อหาป๊อปอัพคือ 123;
แน่นอนถ้าคุณไม่ผ่านพารามิเตอร์ตัวอย่างเช่นหากที่อยู่ของคุณคือ ABC.HTML และไม่มีพารามิเตอร์หลังจากนั้นถ้าผลการโทรออกที่ถูกบังคับบางครั้งจะรายงานข้อผิดพลาด:
ดังนั้นเราจำเป็นต้องเพิ่มการตัดสินเพื่อพิจารณาว่าพารามิเตอร์ที่เราร้องขอนั้นว่างเปล่าและกำหนดค่าให้กับตัวแปรก่อนอื่น:
var myurl = getQueryString ("url"); ถ้า (myurl! = null && myurl.toString (). ความยาว> 1) {แจ้งเตือน (getQueryString ("url"));}วิธีนี้คุณจะไม่รายงานข้อผิดพลาด!
วิธีที่ 2: วิธีการดั้งเดิม
<script type = "text/javascript"> function urlsearch () {ชื่อ var, value; var str = location.href; // รับแถบที่อยู่ทั้งหมด var num = str.indexof ("?") str = str.substr (num+1); // รับพารามิเตอร์ทั้งหมด stringvar.substr (เริ่มต้น [, ความยาว] var arr = str.split ("&"); // ใส่แต่ละพารามิเตอร์ในอาร์เรย์สำหรับ (var i = 0; i <arr.length; i ++) {num = arr [i] .indexof ("="); name = arr [i] .substring (0, num); value = arr [i] .substr (num+1); [ชื่อ] = value;}}}} var Request = ใหม่ urlsearch ();ตัวอย่างเช่นบันทึกรหัสนี้เป็น 1.html
จากนั้นฉันต้องการเข้าถึง 1.html? id = ทดสอบ
ในเวลานี้จะได้รับค่าการทดสอบ
เรียกใน html
<script type = "text/javascript"> var a = "http://baidu.com"; </script> </head> <body> <a id = "a1" href = ""> sadfsdfas </a> <script> var a1 = document.getElementById ("A1"); a = "http://xxx.com/gg.htm?cctv"; var s = a.indexof ("?"); var t = a.substring (s+1); // t คือสิ่งที่เกิดขึ้นหลังจากนั้น </script>Stringvar.substr (เริ่ม [, ความยาว]
ส่งคืนสายย่อยของความยาวที่ระบุเริ่มต้นจากตำแหน่งที่ระบุ
สตริงวาร์
ตัวเลือกที่ต้องการ สตริงตัวอักษรหรือวัตถุสตริงเพื่อแยกสายย่อย
เริ่ม
ตัวเลือกที่ต้องการ ตำแหน่งเริ่มต้นของสตริงย่อยที่ต้องการ ดัชนีของอักขระตัวแรกในสตริงคือ 0
ความยาว
ไม่จำเป็น. จำนวนอักขระที่ควรรวมอยู่ในสายย่อยที่ส่งคืน
หากความยาวเป็น 0 หรือลบสตริงว่างจะถูกส่งคืน หากไม่ได้ระบุพารามิเตอร์นี้สตริงย่อยจะยังคงอยู่ที่จุดสิ้นสุดของ StringVar
นี่คือพารามิเตอร์ที่เกี่ยวข้อง:
str.toLowercase () แปลงเป็นตัวพิมพ์เล็ก
str.touppercase () สตริงทั้งหมดจะถูกแปลงเป็นตัวพิมพ์ใหญ่
URL คือ: ตัวระบุทรัพยากรที่เหมือนกัน (URL)
URL ที่สมบูรณ์ประกอบด้วยส่วนเหล่านี้:
Scheme: // host: พอร์ต/path? query#fragment
โครงการ: โปรโตคอลการสื่อสาร
ใช้กันทั่วไป HTTP, FTP, Maito ฯลฯ
โฮสต์: โฮสต์
เซิร์ฟเวอร์ (คอมพิวเตอร์) ระบบชื่อโดเมน (DNS) ชื่อโฮสต์หรือที่อยู่ IP
พอร์ต: หมายเลขพอร์ต
จำนวนเต็ม, เป็นทางเลือกเมื่อถูกละเว้นพอร์ตเริ่มต้นของรูปแบบจะถูกใช้เช่นพอร์ตเริ่มต้นของ HTTP คือ 80
เส้นทาง: เส้นทาง
สตริงคั่นด้วยศูนย์หรือหลายสัญลักษณ์ "/" โดยทั่วไปจะใช้เพื่อแสดงไดเรกทอรีหรือที่อยู่ไฟล์บนโฮสต์
คำถาม: คำถาม
เป็นทางเลือกที่จะใช้ในการส่งผ่านพารามิเตอร์ไปยังหน้าเว็บแบบไดนามิก (เช่นหน้าเว็บที่ทำโดยใช้ CGI, ISAPI, PHP/JSP/ASP/ASP.NET และเทคโนโลยีอื่น ๆ ) อาจมีพารามิเตอร์หลายตัวคั่นด้วยสัญลักษณ์ "&" และชื่อและค่าของแต่ละพารามิเตอร์จะถูกคั่นด้วยสัญลักษณ์ "="
แฟรกเมนต์: ข้อมูลชิ้นส่วน
สตริงที่ระบุชิ้นส่วนในทรัพยากรเครือข่าย ตัวอย่างเช่นมีคำอธิบายคำนามหลายคำในหน้าเว็บและคุณสามารถใช้แฟรกเมนต์เพื่อค้นหาคำอธิบายคำที่แน่นอนโดยตรง (หรือที่รู้จักกันในชื่อจุดยึด)
สำหรับ URL ดังกล่าว
http://www.maidq.com/index.html?ver=1.0&id=6#imhere
เราสามารถรับส่วนต่าง ๆ ของมันใน JavaScript
1, window.location.href
สตริง URL ทั้งหมด (แถบที่อยู่ที่สมบูรณ์ในเบราว์เซอร์)
ค่าส่งคืนในตัวอย่างนี้: http://www.maidq.com/index.html?ver=1.0&id=6#imhere
2, window.location.protocol
โปรโตคอลส่วนหนึ่งของ URL
ตัวอย่างนี้ส่งคืนค่า: http:
3, window.location.host
ส่วนที่เป็นโฮสต์ของ URL
ค่าส่งคืนในตัวอย่างนี้: www.maidq.com
4, window.location.port
ส่วนพอร์ตของ URL
หากใช้พอร์ต 80 ค่าเริ่มต้น (อัปเดต: แม้ว่า: เพิ่ม 80) ค่าส่งคืนไม่ใช่ค่าเริ่มต้น 80 แต่เป็นอักขระที่ว่างเปล่า
ตัวอย่างนี้ส่งคืนค่า: ""
5, window.location.pathname
ส่วนพา ธ ของ URL (นั่นคือที่อยู่ไฟล์)
ตัวอย่างนี้ส่งคืนค่า: /fisker/post/0703/window.location.html
6, window.location.search
ส่วนการสืบค้น (พารามิเตอร์)
นอกเหนือจากการกำหนดค่าให้กับภาษาแบบไดนามิกแล้วเรายังสามารถให้หน้าคงที่และใช้ JavaScript เพื่อรับค่าของพารามิเตอร์ที่เชื่อว่าเป็น
ค่าส่งคืนในตัวอย่างนี้:? ver = 1.0 & id = 6
7, window.location.hash
จุดยึด
ค่าส่งคืนในตัวอย่างนี้: #imhere
ข้างต้นเป็นคำอธิบายแบบเต็มของทั้งสองวิธี (ง่ายและใช้งานได้จริง) ของ JS เพื่อรับพารามิเตอร์แถบที่อยู่ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!