J'ai:
var uri = window.location.href;
Qui procure http://example.com/something#hash
Quelle est la façon la meilleure et la plus simple d'obtenir le chemin complet sans le #hash
?
uri = http://example.com/something#hash
nohash = http://example.com/something
J'ai essayé d'utiliser location.Origin+location.pathname
qui ne fonctionne pas dans tous les navigateurs. J'ai essayé d'utiliser location.protocol+'//'+location.Host+location.pathname
qui ressemble à une sorte de solution de merde pour moi.
Quelle est la meilleure et la plus simple façon de le faire? peut-être que je demande location.hash et essaie de substr () cela depuis l'uri?
location.protocol+'//'+location.Host+location.pathname
Est la syntaxe correcte si vous ne vous souciez pas du numéro de port ou de la chaîne de requête
Si vous vous en souciez:
https://developer.mozilla.org/en/DOM/window.location
location.protocol+'//'+
location.Host+
location.pathname+
(location.search?location.search:"")
ou
location.protocol+'//'+
location.hostname+
(location.port?":"+location.port:"")+
location.pathname+
(location.search?location.search:"")
Vous pouvez aussi simplement faire une 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,"")
La voie universelle est-elle aussi la plus petite?
location.href.split(/\?|#/)[0]
Solutions plus courtes:
sans chaîne de requête et hachage location.href.split(location.search||location.hash||/[?#]/)[0]
uniquement sans hachage location.href.split(location.hash||"#")[0]
(J'utilise habituellement le premier)