расположение окна javascript href без хэша?


Я:

var uri = window.location.href;

обеспечивает http://example.com/something#hash

какой самый лучший и простой способ, чтобы получить весь путь без #hash?

uri    = http://example.com/something#hash
nohash = http://example.com/something

Я пробовал использовать location.origin+location.pathname который не работает в каждом браузере. Я пробовал использовать location.protocol+'//'+location.host+location.pathname который выглядит как своего рода дерьмовое решение для меня.

что это лучший и простой способ сделать это? может быть, я запрашиваю местоположение.хэш и попробуйте substr () это из uri?

5 60

5 ответов:

location.protocol+'//'+location.host+location.pathname это правильный синтаксис, если вы не заботитесь о номере порта или querystring

если вы заботитесь:

https://developer.mozilla.org/en/DOM/window.location

location.protocol+'//'+location.host+location.pathname+(location.search?location.search:"")

или

location.protocol+'//'+location.hostname+(location.port?":"+location.port:"")+location.pathname+(location.search?location.search:"")

вы также можете просто сделать location.href.replace(location.hash,"")

var uri = window.location.href.split("#")[0];

// Returns http://example.com/something

var hash = window.location.href.split("#")[1];

// Returns #hash
location.href.replace(location.hash,"")

более короткие решения:

  • без строки запроса и хэш location.href.split(location.search||location.hash||/[?#]/)[0]

  • только без хэш -location.href.split(location.hash||"#")[0]

(Я обычно использую первый)

является ли универсальный способ также меньшим?

location.href.split(/\?|#/)[0]