Подтвердить что ты не робот

Javascript расположение окна href без hash?

У меня есть:

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, который выглядит как дрянное решение для меня.

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

4b9b3361

Ответ 1

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

Если вам все равно:

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,"")

Ответ 2

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

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

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

// Returns #hash

Ответ 3

location.href.replace(location.hash,"")

Ответ 4

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

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

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

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

Ответ 5

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

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