location.host vs location.hostname и кроссбраузерная совместимость?

Какой из них является наиболее эффективным по сравнению с проверкой того, обращается ли пользовательский агент через правильный домен.

Мы хотели бы показать небольшое предупреждение в стиле «верхняя панель» на основе js, если они обращаются к домену с помощью какого-то веб-прокси (поскольку он имеет тенденцию нарушать работу js).

Мы думали об использовании следующего:

var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
    // showMessage ...
}

Это позаботится о любых поддоменах, которые мы когда-либо использовали.

Какой хост или имя хоста мы должны использовать?

В Firefox 5 и Chrome 12:

console.log(location.host);
console.log(location.hostname);

.. показывает то же самое для обоих.

Это потому, что порт на самом деле отсутствует в адресной строке?

W3Schools говорит, что хост содержит порт.

Следует ли проверять location.host/hostname или мы можем быть уверены в IE6 + и всех остальных, что он будет существовать ?

340
задан Kaspar Lee 18 October 2016 в 06:28
поделиться