Подтвердить что ты не робот

Как получить имя/имя домена реферера с помощью JavaScript?

Я знаю, что могу получить имя хоста текущей страницы, просто сделав:

var myhostname = location.hostname;

Но как получить имя хоста для реферера? Я могу получить реферер

var referrer = document.referrer;

но, к сожалению, там нет document.referrer.hostname, доступных в JavaScript. Как я могу получить это значение?

Примером того, где это полезно, является то, что кто-то нажимает ссылку на google.com. Я хочу иметь возможность извлекать google.com из реферера (а не страницы и строки запроса).

4b9b3361

Ответ 1

Разбираем его. document.referrer.split( '/' ); приблизит вас. Или взгляните на это

http://blog.stevenlevithan.com/archives/parseuri

Если реферер поступает из браузера, он будет нормальным - но на всякий случай вам нужен более сильный анализ.

Ответ 2

Это сделало бы:

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

Пример.

Ответ 3

function parseURL(url) {
    var a=document.createElement('a');
    a.href=url;
    return a.hostname;
}

Это относительно старый вопрос, тем не менее это может помочь любым последователям.

Ответ 5

Вы можете использовать regexp для извлечения этих данных.

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

Ответ 6

Он включает протокол, но document.origin будет работать. Он работает через заголовок Origin, который не содержит информации о пути, включенной в него.

Ответ 7

Привет, используйте эту функцию, чтобы получить доменное имя.

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;
}