Какая из них является наиболее эффективным против проверки, если агент пользователя получает доступ через правильный домен.
Мы хотели бы показать небольшой 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 говорит, что узел содержит порт.
Стоит месте.хост/имя хоста быть проверены или мы можем быть довольно уверены в IE6+ и все остальные он будет существовать?
Как маленькая Примечание: интерактивная Анатомия ссылке
--
<див класс="в СР-лишь"> <п>в короткое (при условии расположения на <код>http://example.org:8888/foo/bar#bang</код>):</п> &л;ул><ли><код>имя</код> дает <код>пример.орг</код></ли> <ли><код>хозяина</код> дает <код>пример.орг:8888</код></ли></ул> </див>
узел включает в себя номер порта, если там указано. Если нет номер порта, в частности, в URL, а затем возвращается таким же, как имя. Вы выбираете ли вы соответствовать номеру порта или нет. См https://developer.mozilla.org/en/window.location для получения дополнительной информации.
Я предполагаю, что вы хотите, чтобы имя просто имя сайта.
Если вы настаиваете, чтобы использовать окно.расположение.происхождения` Вы можете положить это в верхней части вашего кода, прежде чем читать "происхождение"
if (!window.location.origin) {
window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}
ЗЫ: Для справки, на самом деле это был оригинальный вопрос. Он уже был отредактирован :)
Ваш основной вопрос был дан ответ выше. Я просто хотел обратить внимание, что регулярное выражение Вы're, используя баг. Он также добьется успеха в foo-domain.com которым не поддомен
domain.com`
Что вы действительно хотите это:
/(^|\.)domain\.com$/
МДН: https://developer.mozilla.org/en/DOM/window.location
Похоже, что вы получите тот же результат для обоих, но имя хоста
содержит явное имя хоста без скобок или номер порта.