Существует свойство встроенного объекта 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 & mdash; просто создайте якорь с 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. Если вы думаете, что у вас может быть поддержка, попробуйте здесь .