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í.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<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.

1
2
3
4
5
6
7
<script type="text/javascript">
// mostrarlo en un alert
alert(dominio_base());

// escribirlo en un documento
document.writeIn('mi dominio es ' + dominio_base());
</script>