1. ฟังก์ชั่นการแยกวิเคราะห์ URL
การคัดลอกรหัสมีดังนี้:
<script>
-
*@param {string} url ที่อยู่ URL ที่สมบูรณ์
*@returns {Object} วัตถุที่กำหนดเอง
*@คำอธิบายตัวอย่างการใช้งาน: var myurl = parseurl ('http://abc.com:8080/dir/index.html?id=255&m=hello#top');
myurl.file = 'index.html'
myurl.hash = 'top'
myurl.host = 'abc.com'
myurl.Query = '? id = 255 & m = สวัสดี'
myurl.params = object = {id: 255, m: สวัสดี}
myurl.path = '/dir/index.html'
myurl.segments = array = ['dir', 'index.html']
myurl.port = '8080'
myurl.protocol = 'http'
myurl.source = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'
-
ฟังก์ชั่น parseurl (url) {
var a = document.createElement ('a');
A.href = url;
กลับ {
ที่มา: URL
โปรโตคอล: a.protocol.replace (':', ','),
โฮสต์: a.hostname,
พอร์ต: a.port,
คำถาม: A.Search,
params: (function () {
var ret = {}
seg = a.search.replace (/^/?/, ''). แยก ('&'),
len = seg.length, i = 0, s;
สำหรับ (; i <len; i ++) {
ถ้า (! seg [i]) {ดำเนินการต่อ; -
s = seg [i] .split ('=');
ret [s [0]] = s [1];
-
ผลตอบแทนผลตอบแทน;
-
ไฟล์: (a.pathname.match (/// ([[^//?#]+) $/i) || [, '']) [1],
แฮช: a.hash.replace ('#', '')
เส้นทาง: a.pathname.replace (/^([^//])/, '/$ 1')
ญาติ: (A.Href.Match (/tps?: ///// [^//]+(.+)/) || [, '' ']) [1],
ส่วน: A.PathName.replace (/^///, ''). แยก ('/')
-
-
// var myurl = parseurl ('http://abc.com:8080/dir/index.html?id=255&m=hello#top');
var myurl = parseurl ('http: // localhost: 8080/test/mytest/tologina.ction? m = 123 & pid = abc');
การแจ้งเตือน (myurl.path);
การแจ้งเตือน (myurl.params.m);
การแจ้งเตือน (myurl.params.pid);
</script>
2. การวิเคราะห์ URL แบบแบ่งส่วน
URL: ตัวเลือกทรัพยากรที่เหมือนกัน (URL)
URL ที่สมบูรณ์ประกอบด้วยชิ้นส่วนเหล่านี้: Scheme: // host: พอร์ต/path? query#fragment
การคัดลอกรหัสมีดังนี้:
SCHEME = โปรโตคอลการสื่อสาร (ใช้กันทั่วไป HTTP, FTP, Maito ฯลฯ )
host = host (ชื่อโดเมนหรือ IP)
พอร์ต = หมายเลขพอร์ต
เส้นทาง = เส้นทาง
Query = Query (ไม่บังคับใช้ในการส่งพารามิเตอร์ไปยังหน้าเว็บแบบไดนามิก (เช่นหน้าเว็บที่ทำโดยใช้ CGI, ISAPI, PHP/JSP/ASP/ASP.NET และเทคโนโลยีอื่น ๆ ) อาจมีพารามิเตอร์หลายตัวคั่นด้วยสัญลักษณ์ "&" และชื่อและค่าของแต่ละพารามิเตอร์
แฟรกเมนต์ = ข้อมูลข้อมูล (สตริงที่ใช้เพื่อระบุชิ้นส่วนในทรัพยากรเครือข่ายตัวอย่างเช่นหากมีคำอธิบายคำนามหลายคำในหน้าเว็บคุณสามารถใช้แฟรกเมนต์เพื่อค้นหาคำอธิบายคำที่แน่นอนโดยตรง (หรือที่เรียกว่าจุดยึด)))))))))))
สำหรับ URL ดังกล่าว
//www.vevb.com:80/seo/?ver=1.0&id=6#imhere
เราสามารถรับส่วนต่าง ๆ ของมันใน JavaScript
1, window.location.href
สตริง URL ทั้งหมด (แถบที่อยู่ที่สมบูรณ์ในเบราว์เซอร์)
2, window.location.protocol
โปรโตคอลส่วนหนึ่งของ URL
ตัวอย่างนี้ส่งคืนค่า: http:
3, window.location.host
ส่วนที่เป็นโฮสต์ของ URL
ค่าส่งคืนในตัวอย่างนี้: www.vevb.com
4, window.location.port
ส่วนพอร์ตของ URL
หากใช้พอร์ต 80 ค่าเริ่มต้น (อัปเดต: แม้ว่า: เพิ่ม 80) ค่าส่งคืนไม่ใช่ค่าเริ่มต้น 80 แต่เป็นอักขระที่ว่างเปล่า
ตัวอย่างนี้ส่งคืนค่า: ""
5, window.location.pathname
ส่วนพา ธ ของ URL (นั่นคือที่อยู่ไฟล์)
ตัวอย่างนี้ส่งคืนค่า: /seo /
6, window.location.search
ส่วนการสืบค้น (พารามิเตอร์)
นอกเหนือจากการกำหนดค่าให้กับภาษาแบบไดนามิกแล้วเรายังสามารถให้หน้าคงที่และใช้ JavaScript เพื่อรับค่าของพารามิเตอร์ที่เชื่อว่าเป็น
ค่าส่งคืนในตัวอย่างนี้:? ver = 1.0 & id = 6
7, window.location.hash
จุดยึด
ค่าส่งคืนในตัวอย่างนี้: #imhere