Keltex
Keltex

Reputation: 26426

How do I get the referrer's domain/host name using JavaScript?

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

Answers (7)

Lou Franco
Lou Franco

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

elkelk
elkelk

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

baquiax
baquiax

Reputation: 148

You can use regexp to extract this data.

string.match(/^http([s]?)://([a-zA-Z0-9-_\.]+)(:[0-9]+)?/);

Upvotes: 1

Java4you
Java4you

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

chipit24
chipit24

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

adnan korkmaz
adnan korkmaz

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

Gert Grenander
Gert Grenander

Reputation: 17084

This would do:

document.referrer.split('/')[2];

Example.

Upvotes: 58

Related Questions