De que uno de ellos es el más efectivo vs comprobación de si el agente de usuario se accede a través del dominio correcto.

Nos gustaría mostrar un pequeño js «basado en la parte superior de la barra de’ estilo de advertencia si se acceda al dominio utilizando algún tipo de proxy web (como se tiende a romper la js).

Estábamos pensando en el uso de los siguientes:

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

Que se haría cargo de cualquiera de los subdominios que nunca uso.

Que debemos usar de host o nombre de host?

En Firefox 5 y Chrome 12:

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

.. muestra el mismo para ambos.

Es que debido a que el puerto no está realmente en la barra de direcciones?

W3Schools dice host contiene el puerto.

Debe ubicación.host/nombre de host ser validados o podemos estar bastante seguro de que en IE6+, y todos los demás que existirá?

6 Comentarios

  1. 936

    ubicación.host vs ubicación.nombre de host y la compatibilidad entre navegadores?

    Como un poco memo: el enlace interactivo de anatomía

    En corto (suponiendo una ubicación de http://example.org:8888/foo/bar#bang):

    • hostname le da example.org
    • host le da example.org:8888
    • Una imagen vale más que mil palabras.
    • pero sólo aquellos que mil palabras necesarias para describir la imagen
    • De acuerdo a la en.wikipedia.org/wiki/…, el puerto no se debe considerar una parte de la hostia (pero es una parte de la autoridad).
  2. 68

    host sólo incluye el número de puerto si no es especificado. Si no hay ningún número de puerto, específicamente en la URL, a continuación, devuelve el mismo nombre de host. Usted escoge si usted cuidado para que coincida con el número de puerto o no. Ver https://developer.mozilla.org/en/window.location para obtener más información.

    Quiero suponer que usted desea que el nombre de host para obtener el nombre del sitio.

  3. 30

    Si usted está insistiendo en el uso de la window.location.origin
    Puedes 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: '');
    }

    Solución

    PS: Para el registro, que era en realidad la pregunta original. Ya estaba editado 🙂

    • Pero…. OP nunca se menciona window.location.origin en su pregunta. Su pregunta fue hecho específicamente con respecto a las cosas que son no window.location.origin.
    • También vale la pena señalar que la ventana.ubicación.origen tiene problemas de compatibilidad del navegador. developer.mozilla.org/en-US/docs/Web/API/Window/…
    • No era la pregunta, pero me ayudó 🙂 Upvoted!
  4. 10

    Su principal pregunta ha sido respondida anteriormente. Yo sólo quería señalar que la expresión regular que está utilizando tiene un bug. Que también tendrá éxito en foo-domain.com que no es un subdominio de domain.com

    Lo que realmente desea es este:

    /(^|\.)domain\.com$/
  5. 0

    Acaba de añadir una nota en la que el navegador de Google Chrome tiene origen atributo para la ubicación. que le da el dominio completo de protocolo para el número de puerto, como se muestra en la siguiente captura de pantalla.
    ubicación.host vs ubicación.nombre de host y la compatibilidad entre navegadores?

Dejar respuesta

Please enter your comment!
Please enter your name here