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?
Ответы
Ответ 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
Более короткие решения:
(обычно я использую первый)
Ответ 5
Является ли универсальный способ меньшим?
location.href.split(/\?|#/)[0]