Care dintre acestea este cel mai eficient vs verifica dacă agentul utilizator este prin accesarea corectă domeniu.
Ne-ar dori să arate un mic js bazate pe 'bara de sus' stilul de avertizare dacă sunt accesarea de domeniu folosind un fel de proxy web (cum tinde să rupă js).
Am fost de gândire despre utilizarea următoarele:
var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
// showMessage ...
}
Care ar avea grijă de orice subdomenii am folosit vreodată.
Care ar trebui să folosim gazdă sau numele de gazdă?
În Firefox 5 și Chrome 12:
console.log(location.host);
console.log(location.hostname);
arată la fel pentru ambele.
Asta pentru că portul e't, de fapt, în bara de adrese?
W3Schools spune gazdă conține port.
În cazul în locație.host/gazdă fi validate sau putem fi destul de siguri în IE6+ și toate celelalte se vor există?
Ca o mică notă de informare: interactive link-ul de anatomie
--
pe scurt (presupunând o locație de
gazdă include doar numărul de port, dacă nu este specificat nimeni. Dacă nu există nici un număr de port în special în URL-ul, apoi se revine la fel ca numele de gazdă. Tu alegi dacă ai grijă să se potrivească cu numărul de port sau nu. Vezi https://developer.mozilla.org/en/window.location pentru mai multe informații.
Presupun că vrei nume de gazdă pentru a obține doar numele site-ului.
Dacă insiști să folosești fereastra.locație.origine Puteți pune acest lucru în partea de sus a codului inainte de a citi cele de "origine"
if (!window.location.origin) {
window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}
PS: Pentru a înregistra, de fapt, a fost întrebarea inițială. Acesta a fost deja editate :)
Dumneavoastră primar întrebare a primit un răspuns de mai sus. Am vrut doar să subliniez că regex te're folosind are un bug. Va reuși, de asemenea, pe foo-domain.comcare nu este un subdomeniu al
domain.com`
Ceea ce vrei cu adevărat este acest lucru:
/(^|\.)domain\.com$/
MDN: https://developer.mozilla.org/en/DOM/window.location
Se pare că veți obține același rezultat pentru ambele, dar hostname
conține clar numele de gazdă fără paranteze sau numărul de port.