Існує властивість вбудованого window.location
об'єкта, який забезпечить це для поточного вікна.
// 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
Оновіть, використовуйте ті самі властивості для будь-якої URL-адреси:
Виявляється, ця схема стандартизується як інтерфейс під назвою URLUtils , і вгадайте, що? І існуючий window.location
об'єкт, і елементи якоря реалізують інтерфейс.
Таким чином, ви можете використовувати ті самі властивості, наведені вище для будь-якої URL-адреси - просто створіть якір з URL-адресою та отримайте доступ до властивостей:
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]: Підтримка веб-переглядача для властивостей, що включають порт, не відповідає. Див.: Http://jessepollak.me/chrome-was-wrong-ie-was-right
Це працює в останніх версіях Chrome і Firefox . У мене немає версій Internet Explorer для тестування, тому будь ласка, протестуйте себе на прикладі JSFiddle.
Також є URL
об’єкт, який буде надавати, який пропонує цю підтримку самих URL-адрес, без елемента прив’язки. Схоже, наразі не підтримують стабільні веб-переглядачі, але, як кажуть, він надходить у Firefox 26. Коли ви думаєте, що у вас може бути підтримка, спробуйте його тут .