I have:
var uri = window.location.href;
That provides http://example.com/something#hash
What's the best and easiest way to get the entire path without the #hash
?
uri = http://example.com/something#hash
nohash = http://example.com/something
I tried using location.origin+location.pathname
which doesn't work in every browser. I tried using location.protocol+'//'+location.host+location.pathname
which looks like kind of a crappy solution to me.
What is the best and easiest way t开发者_高级运维o do so? maybe I query for location.hash and try to substr() this from the uri?
location.protocol+'//'+location.host+location.pathname
is the correct syntax if you do not care about port number or querystring
If you do care:
https://developer.mozilla.org/en/DOM/window.location
location.protocol+'//'+
location.host+
location.pathname+
(location.search?location.search:"")
or
location.protocol+'//'+
location.hostname+
(location.port?":"+location.port:"")+
location.pathname+
(location.search?location.search:"")
You can also just do a location.href.replace(location.hash,"")
It will remove EVERYTHING from the FIRST # and on regardless of other hash characters in the string
Alternatively create a URL object:
const url = new URL("https://www.somepage.com/page.hmtl#anchor") //(location.href);
console.log(url)
url.hash="";
console.log(url)
var uri = window.location.href.split("#")[0];
// Returns http://example.com/something
var hash = window.location.hash;
// Returns #hash
location.href.replace(location.hash,"")
Is the universal way also the smaller?
location.href.split(/\?|#/)[0]
Shorter solutions:
without query string and hash
location.href.split(location.search||location.hash||/[?#]/)[0]
only without hash
location.href.split(location.hash||"#")[0]
(I usually use the first one)
ES2020:
let [uri, hash] = location.href.split("#");
console.log(uri, hash);
location.hash = "#myhash";
[uri, hash] = location.href.split("#");
console.log(uri, hash);
I was looking for this answer:
`${window.location.origin}${window.location.pathname}${window.location.search}`
location.href = window.location.href.split("write here your code to delete in your URL")[0] + "write here your final destination";
精彩评论