2009-08-05 6 views
31

Ya tengo un poco de js en mi sitio, así que quiero tener una función que tome el nombre de dominio de la url actual de la manera más eficiente posible.La forma más rápida de captar dominio/nombre de host usando javascript

Ejemplo:

entrada: https://stackoverflow.com/questions/ask

resultado: stackoverflow.com

entrada: http://test.stackoverflow.com/questions/ask

resultado: test.stackoverflow.com

que supongo que la mejor manera de comienzo es con document.location, pero estoy en desacuerdo qué hacer desde allí.

Respuesta

39

Trate document.location.hostname

3

link text

window.location.hostname y quitar lo que no se necesita como "www"

58

Depende de lo que se va a utilizar el nombre de dominio para y, específicamente, si está o no preocuparse por un número de puerto específico. Si la URL incluye un número de puerto como:

http://stackoverflow.com:80/question/ask

document.location.hostname volverá "stackoverflow.com"

tiempo, document.location.host volverá "stackoverflow.com:80"

¿Qué es mejor depende en tu caso de uso.

Si está examinando el nombre de dominio para saber si un script podrá o no acceder a un script/DOM en otro marco/ventana, entonces tenga en cuenta que el número de puerto es significativo. Los navegadores no permitirán el acceso de secuencias de comandos de dominio cruzado en marcos/ventanas. Con el propósito de comparar nombres de dominio, diferentes números de puertos pueden considerarse dominios diferentes.

14

use document.location.origin si necesita el nombre de host del origen (incluyendo http/https)

Cuestiones relacionadas