Tengo la URL http://somesubdomain.domain.com (los dominios pueden variar, el dominio siempre es el mismo). Necesita tomar el subdominio y volver a cargar la página con algo como domain.com/some/path/here/somesubdomain usando greasemonkey (o abra una nueva ventana con URL domain.com/some/path/here/somesubdomain, lo que sea).Obtener el subdominio y cargarlo en la url con greasemonkey
Respuesta
var full = window.location.host
//window.location.host is subdomain.domain.com
var parts = full.split('.')
var sub = parts[0]
var domain = parts[1]
var type = parts[2]
//sub is 'subdomain', 'domain', type is 'com'
var newUrl = 'http://' + domain + '.' + type + '/your/other/path/' + subDomain
window.open(newUrl);
La respuesta proporcionada por Derek funcionará en los casos más comunes, pero no funcionará para subdominios "xxx.xxx", o "host.co.uk". (también, usando window.location.host, también recuperará el número de puerto, que no se trata: http://www.w3schools.com/jsref/prop_loc_host.asp)
Para ser sincero, no veo una solución perfecta para este problema. Personalmente, he creado un método para la división de nombres de host que uso muy a menudo porque cubre una gran cantidad de nombres de host.
Este método divide el nombre de host en {domain: "", type: "", subdomain: ""}
function splitHostname() {
var result = {};
var regexParse = new RegExp('([a-z\-0-9]{2,63})\.([a-z\.]{2,5})$');
var urlParts = regexParse.exec(window.location.hostname);
result.domain = urlParts[1];
result.type = urlParts[2];
result.subdomain = window.location.hostname.replace(result.domain + '.' + result.type, '').slice(0, -1);;
return result;
}
console.log(splitHostname());
Este método sólo devuelve el subdominio como una cadena:
function getSubdomain(hostname) {
var regexParse = new RegExp('[a-z\-0-9]{2,63}\.[a-z\.]{2,5}$');
var urlParts = regexParse.exec(hostname);
return hostname.replace(urlParts[0],'').slice(0, -1);
}
console.log(getSubdomain(window.location.hostname));
// for use in node with express: getSubdomain(req.hostname)
Estos dos métodos funcionarán para dominios más comunes (incluyendo co.uk) NOTA: el slice
al final de los subdominios es para eliminar el punto extra.
Espero que esto resuelva su problema.
La mejor y más precisa respuesta que he encontrado, gracias – webdevinci
Utilicé la solución de Dereks y me metí en problemas cuando de repente no lo hice. t tiene un subdominio La respuesta de Vlads funciona mejor en mi caso. – MartinJH
Las soluciones proporcionadas aquí funcionan algunas veces, o incluso la mayor parte del tiempo, pero no en todas partes. Que yo sepa, la mejor manera de encontrar el subdominio completo de cualquier dominio (y recuerde, a veces los subdominios también tienen períodos en ellos) Puede usar subdominios, etc.) para usar el Public Suffix List, que se mantiene por Mozilla.
La parte de la URL que no está en la lista de sufijos públicos es el subdominio más el dominio en sí, unido por un punto. Una vez que elimine el sufijo público, puede eliminar el dominio y dejar solo el subdominio eliminando el último segmento entre los puntos.
Veamos un ejemplo complicado. Supongamos que está probando sub.sub.example.pvt.k12.ma.us
. pvt.k12.ma.us
es un sufijo público, lo creas o no! Por lo tanto, si utilizó la Lista de sufijos públicos, podrá convertirla rápidamente en sub.sub.example
eliminando el sufijo conocido. Luego, puede pasar de sub.sub.example
a solo sub.sub
después de eliminar la última porción de las piezas restantes, que era el dominio. sub.sub
es su subdominio.
- 1. Obtener subdominio de la URL usando Python
- 2. Obtener dominio sin subdominio de un URL
- 3. ¿Cómo obtener el valor de subdominio de una url?
- 4. Obtiene el subdominio desde una URL
- 5. ¿Cómo extraer la URL completa (subdominio, dominio y directorios) con ZF?
- 6. obtener la URL absoluta con EL
- 7. Cómo reemplazar el evento onclick con GreaseMonkey?
- 8. Regex para extraer el subdominio de la URL?
- 9. Greasemonkey y variables globales
- 10. Greasemonkey, Chrome y unsafeWindow.foo()
- 11. ¿Cómo obtener la URL actual en el portapapeles con Vimperator?
- 12. IIS Express catch-all URL de subdominio
- 13. ¿Obtener el nombre de dominio en la URL con JSTL?
- 14. Crear el archivo JSON en línea y obtener la URL
- 15. Obtener el contenido de la URL en Node.js con Express
- 16. Obtener la URL y los parámetros con SSI
- 17. Cómo obtener la URL anterior con PHP
- 18. Incluir subdominio de ruta restringida en Rails asistente de url
- 19. Virtualhost para subdominio de comodín y subdominio estático
- 20. Greasemonkey Guión y Función Ámbito
- 21. Insertar en la colección JPA sin cargarlo
- 22. WordPress htaccess en la raíz anula htaccess en el subdominio. La aplicación Subdominio no funciona ahora
- 23. C# - Guardar un DataGridView en un archivo y cargarlo
- 24. Obtener el #id de la URL actual
- 25. Eliminar el subdominio de la cadena en ruby
- 26. Obtener URL de iframe y actualizar el hash en la URL del navegador
- 27. Obtener URL completa con #tag
- 28. Cookie de subdominio de ASP.NET (principal y un subdominio)
- 29. .htpasswd en el subdominio específico
- 30. Obtener el segundo segmento de la url
¡Gracias, funciona! –
¿Qué sucede si el dominio es google.co.uk? Esto devolverá el subdominio incorrecto. – TLK
Para obtener solo el subdominio: window.location.host.split ('.') [0]; –