Otro blog más de diseño

Para un proyecto y por necesidades de “producción” necesitábamos saber cuál era el dominio base desde Javascript y a poder ser, sin utilizar php.
La solución: capturar la url actual, separar el protocolo por un lado y el dominio junto con sus subdominios por otro lado (si los hubiere), y separar estos últimos, siendo el primier elemento resultante el nombre del dominio.
El resultado es algo así.
<script type="text/javascript">
function dominio_base()
{
// capturamos la url
url_site = document.location.href
// La separamos por la doble barra
url_pos = url_site.indexOf('//');
// por un lado tenemos la url sin protocolos
url_limpia = url_site.substr(url_pos+2);
// y por otro lado el protocolo usado
url_prot = url_site.substr(0,url_pos+2);
// separamos todas las posibles carpetas
url_split = url_limpia.split('/');
// y obtenemos el dominio actual
url_base = url_prot + url_split[0];
return url_base;
}
</script>
Al llamar a la función, simplemente nos devuelve el dominio
<script type="text/javascript">
// mostrarlo en un alert
alert(dominio_base());
// escribirlo en un documento
document.writeIn('mi dominio es ' + dominio_base());
</script>
Qué puedo decir de mi que no se haya dicho ya antes.
Martin
octubre 20th, 2009 el 5:37 pm
Hola! Había otras opciones para obtener los mismos datos aunque separados…
Si mi url es h t t p : / / localhost/test.php
document.write(location.pathname); //devuelve la ruta relativa, en este caso /test.phpdocument.write(location.host); //devuelve el host, en este caso, localhost
Abrazos!
cmacias
octubre 20th, 2009 el 6:49 pm
Hola Martin, buena solución – y más sencilla -. No obstante en nuestro caso necesitábamos también saber el protocolo que estaba utilizando.
Christian
octubre 21st, 2009 el 4:26 pm
Pues lo que planteas se soluciona más facil que tener que estar “inventando la rueda” con tanto codigo JS
alert(location.host); => Devuelve el dominio o host donde está ejecutandose la pagina
alert(location.protocol); => devuelve el host, creo que eso necesitabas tambien saber
Un consejo: leer un poco más
cmacias
octubre 21st, 2009 el 6:36 pm
@Christian, tenía tu mensaje como SPAM, por eso no se publicó antes.
Efectivamente, poco después de la respuesta de @Martin, busqué algo de información que amplié en un nuevo post.
Y si, hay que leer más y buscar mejor, el caso es que a veces el tiempo para hacerlo es limitado … aunque al final pierdes más tiempo en crear algo nuevo que en buscarlo.
Un saludo
Martin
octubre 21st, 2009 el 6:46 pm
A mi me parece genial plantear tantas formas distintas de hacer lo mismo. Es evidente que es más productivo usar la forma más simple, pero me parece igual de válido el buscar el método “made in home”…
Tavo
junio 3rd, 2010 el 5:10 pm
Llegué tarde a esta conversación, pero quiero felciitar a Carlos por la inventiva… y a Martín y Christian por los aportes.
Solo puedo agregar que, como dijo Temístocles,;) siempre que uno necesita hacer algo, es seguro que alguien ya lo hizo!!!
Saludos cordiales
Tavo
cmacias
junio 3rd, 2010 el 5:20 pm
Efectivamente. Para que reinventar la rueda ? Lo malo es que a veces el apuro y la falta de tiempo te impide ver que la solución “está ahí fuera”