Reputation: 26426
I know I can get the host name of the current page, by simply doing:
var myhostname = location.hostname;
But how do I get the host name of the referrer? I can get the referrer by
var referrer = document.referrer;
but unfortunately there's no document.referrer.hostname
available in JavaScript. How can I get this value?
An example of where this is useful is if somebody clicks a link on google.com. I want to be able to retrieve google.com from the referrer (not the page and the query string).
Upvotes: 69
Views: 96075
Reputation: 89172
By parsing it. document.referrer.split( '/' );
will get you close. Or take a look at this
http://blog.stevenlevithan.com/archives/parseuri
If referrer is coming from a browser, it will be sane -- but just in case you want more robust parsing.
Upvotes: 30
Reputation: 1752
It includes the protocol, but document.origin
will work. It works via the Origin header, which has no path information included with it.
Upvotes: -1
Reputation: 148
You can use regexp to extract this data.
string.match(/^http([s]?)://([a-zA-Z0-9-_\.]+)(:[0-9]+)?/);
Upvotes: 1
Reputation: 656
Hi use this function to get domain name.
function getDomain(url) {
if (url) {
var match = /(?:https?:\/\/)?(?:\w+:\/)?[^:?#\/\s]*?([^.\s]+\.(?:[a-z]{2,}|co\.uk|org\.uk|ac\.uk|org\.au|com\.au))(?:[:?#\/]|$)/gi
.exec(url);
return match ? match[1] : null;
} else
return null;
}
Upvotes: 0
Reputation: 6987
You can use var referrer = new URL(document.referrer).hostname
.
See https://developer.mozilla.org/en-US/docs/Web/API/URL.URL.
Upvotes: 16
Reputation: 489
function parseURL(url) {
var a=document.createElement('a');
a.href=url;
return a.hostname;
}
This is a relatively old question, nevertheless this may help any followers.
Upvotes: 42