javascript - ejemplos - window location pathname
location.host vs location.hostname y compatibilidad entre navegadores? (6)
El host solo incluye el número de puerto si hay uno especificado. Si no hay un número de puerto específicamente en la URL, entonces devuelve lo mismo que el nombre de host. Usted elige si le interesa que coincida con el número de puerto o no. Consulte https://developer.mozilla.org/en/window.location para obtener más información.
Supongo que desea que el nombre de host solo obtenga el nombre del sitio.
Cuál de estos es el más efectivo, ya que comprueba si el agente de usuario accede a través del dominio correcto.
Nos gustaría mostrar una pequeña advertencia de estilo "barra superior" basada en js si están accediendo al dominio mediante algún tipo de proxy web (ya que tiende a romper el js).
Estábamos pensando en utilizar lo siguiente:
var r = /.*domain/.com$/;
if (r.test(location.hostname)) {
// showMessage ...
}
Eso cuidaría de cualquier subdominio que utilicemos.
¿Qué debemos usar host o nombre de host?
En Firefox 5 y Chrome 12:
console.log(location.host);
console.log(location.hostname);
.. muestra lo mismo para ambos.
¿Es porque el puerto no está realmente en la barra de direcciones?
W3Schools dice que el host contiene el puerto.
¿Debería validarse location.host/hostname o podemos estar bastante seguros en IE6 + y en todos los demás que existirá?
MDN: https://developer.mozilla.org/en/DOM/window.location
Parece que obtendrá el mismo resultado para ambos, pero el hostname
contiene un nombre de host claro sin paréntesis o número de puerto.
Si está insistiendo en usar window.location.origin
, puede poner esto en la parte superior de su código antes de leer el origin
if (!window.location.origin) {
window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? '':'' + window.location.port: '''');
}
PS: Para el registro, en realidad era la pregunta original. Probablemente ya lo hayan editado. :)
Su pregunta principal ha sido respondida anteriormente. Solo quería señalar que la expresión regular que estás usando tiene un error. También tendrá éxito en foo-domain.com
que no es un subdominio de domain.com
Lo que realmente quieres es esto:
/(^|/.)domain/.com$/