If I use:
alert(window.location.href);
I get everything including query strings. Is there a way to just get the main url part, for example:
Every answer is rather convoluted. Here:
var url = window.location.href.split('?')[0];
Even if a ? isn't present, it'll still return the first argument, which will be your full URL, minus query string.
It's also protocol-agnostic, meaning you could even use it for things like ftp, itunes.etc.
I'm LATE to the party, but I had to solve this recently, figured I'd share the wealth.
const url = window.location.origin + window.location.pathname
//http://example.com/somedir/somefile/
window.location.origin
will give you the base url, in our test case: http://example.com
window.location.pathname
will give you the route path (after the base url), in our test case /somedir/somefile
SOLUTION 2
You can simply do the following to get rid of the query parameters.
const url = window.location.href.split('?')[0]
You can use a regular expression: window.location.href.match(/^[^\#\?]+/)[0]
You can concat origin
and pathname
, if theres present a port such as example.com:80
, that will be included as well.
location.origin + location.pathname
var url = "tp://mysite.com/somedir/somefile/?foo=bar&loo=goo"
url.substring(0,url.indexOf("?"));
If you look at the documentation you can take just the properties you're interested in from the window
object i.e.
protocol + '//' + hostname + pathname