Có một thuộc tính của window.location
đối tượng tích hợp sẽ cung cấp điều đó cho cửa sổ hiện tại.
// If URL is http://www.somedomain.com/account/search?filter=a#top
window.location.pathname // /account/search
// For reference:
window.location.host // www.somedomain.com (includes port if there is one)
window.location.hostname // www.somedomain.com
window.location.hash // #top
window.location.href // http://www.somedomain.com/account/search?filter=a#top
window.location.port // (empty string)
window.location.protocol // http:
window.location.search // ?filter=a
Cập nhật, sử dụng các thuộc tính tương tự cho bất kỳ URL nào:
Hóa ra lược đồ này đang được chuẩn hóa như một giao diện gọi là URLUtils , và hãy đoán xem? Cả hai window.location
đối tượng hiện có và các phần tử neo thực hiện giao diện.
Vì vậy, bạn có thể sử dụng các thuộc tính tương tự ở trên cho bất kỳ URL nào - chỉ cần tạo một neo với URL và truy cập các thuộc tính:
var el = document.createElement('a');
el.href = "http://www.somedomain.com/account/search?filter=a#top";
el.host // www.somedomain.com (includes port if there is one[1])
el.hostname // www.somedomain.com
el.hash // #top
el.href // http://www.somedomain.com/account/search?filter=a#top
el.pathname // /account/search
el.port // (port if there is one[1])
el.protocol // http:
el.search // ?filter=a
[1]: Hỗ trợ trình duyệt cho các thuộc tính bao gồm cổng không nhất quán, Xem: http://jessepollak.me/chrome-was-wrong-ie-was-right
Điều này hoạt động trong các phiên bản mới nhất của Chrome và Firefox . Tôi không có phiên bản Internet Explorer để kiểm tra, vì vậy vui lòng tự kiểm tra với ví dụ về JSFiddle.
Ngoài ra còn có một URL
đối tượng sắp tới sẽ cung cấp hỗ trợ này cho chính URL mà không có phần tử neo. Có vẻ như không có trình duyệt ổn định nào hỗ trợ nó vào thời điểm này, nhưng nó được cho là sẽ xuất hiện trong Firefox 26. Khi bạn nghĩ rằng bạn có thể có hỗ trợ cho nó, hãy dùng thử tại đây .