Foros del Web » Programando para Internet » Javascript »

Obtener el nombre del documento HTML con javascript

Estas en el tema de Obtener el nombre del documento HTML con javascript en el foro de Javascript en Foros del Web. Hola. Estoy intentando hacer un script para cambiar de idioma. Lo he cogido de una página web. Lo que tengo son dos carpetas llamadas esp ...
  #1 (permalink)  
Antiguo 28/12/2007, 11:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Obtener el nombre del documento HTML con javascript

Hola. Estoy intentando hacer un script para cambiar de idioma. Lo he cogido de una página web. Lo que tengo son dos carpetas llamadas esp y ing, que tienen los mismos archivos, pero en los dos idiomas. Y en los documentos voy a poner esto:
Código HTML:
<form action="nada()" id="form1"> <!-- nada() no es ninguna función: el formulario no tiene submit. Lo que quiero es que se cambie al seleccionar el idioma -->
<select onchange="cambioidioma()" id="idioma">
<option selected value="esp">Español</option>
<option value="ing">Inglés</option>
</select>
</form> 
Y éste es el script:
Código:
function cambioidioma() {
   var c=document.getElementById("idioma");
   var i=c.options.selectedIndex;
   if(i==-1) return; //esto no sé lo que significa: lo copie de la página en la que estaba
   var v=c.options[i].value;
   document.location.href='../'+v+'/'+d;
}
La variable d tiene que tener el nombre del documento HTML desde el que se ejecuta el script para cambiar de idioma.

Espero que alguien me pueda ayudar. Gracias por adelantado.

Última edición por unokpasabaxaki; 28/12/2007 a las 11:31 Razón: Porque he cambiado el código del HTML sin acordarme de cambiar el de script. Por eso, la ID que pone en el script no existe.
  #2 (permalink)  
Antiguo 28/12/2007, 16:02
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Re: Obtener el nombre del documento HTML con javascript

var pagina=/\/(.+)$/.test(location.href.value)
var d = pagina[1];
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 28/12/2007, 18:54
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Obtener el nombre del documento HTML con javascript

Cita:
Iniciado por emiliodeg Ver Mensaje
var pagina=/\/(.+)$/.test(location.href.value)
var d = pagina[1];
Poniendo eso, d me devuelve "undefined".
  #4 (permalink)  
Antiguo 28/12/2007, 21:30
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Obtener el nombre del documento HTML con javascript

Hola unokpasabaxaki:

Técnicamente tu formulario es inaccesible. ¿Qué pasaría si tuvieramos javascript desactivado? No podríamos acceder a ningún idioma, ni siquiera podríamos entrar a la página, simplemente, porque no ocurriría nada al cambiar de opción en el select.

Lo normal sería enviar el formulario a una página PHP y en ella ver qué se ha enviado para redirigir a una página u otra.

Si aún así consideras que quieres hacerlo con javascript, te diría que colocases un par de links en HTML para salvar los problemas de accesibilidad, y que colocases un select, si es que te gusta tanto ese modo, para dirigir el flujo de idioma.

El action de tu <form> debe contener un documento, no una función javascript. Tampoco sabemos qué es lo que no te funciona específicamente. Te paso un ejemplo de cómo podría quedar:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<
head>
<
meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<
meta name="Author" content="derkeNuke" />
<
title>Página nueva</title>
</
head>

<
body>


<
noscript>
    <
ul>
        <
li><a href="ing/index.php">Inglés</a></li>
        <
li><a href="esp/index.php">Español</a></li>
    </
ul>
</
noscript>

<
script type="text/javascript">
<!--

var 
str "Seleccione idioma: <form action='esp/index.php'>"
    
str+= "<select name='idioma' onchange='cambioIdioma(this)'>";
    
str+= "<option value='0' selected='selected' style='color:#555;'>seleccione</option>";
    
str+= "<option value='esp'>Español</option>";
    
str+= "<option value='ing'>Inglés</option>";
    
str+= "</select>";
    
str+= "</form>";
document.write(str);

var 
"index.php";
function 
cambioIdioma(elSelect) {
    var 
elSelect.value;
    if( 
v!="0" window.location.href='../'+v+'/'+d;
}

// -->
</script>

</body>
</html> 
Y un formulario sin botón de submit.. lo veo un poco mal, pero si asumimos desde un principio el javascript activado quizás podríamos dejarlo estar.



Bueno, pues así sería más o menos.
¿Qué duda tienes?

__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 29/12/2007, 11:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Obtener el nombre del documento HTML con javascript

Cita:
Iniciado por derkenuke Ver Mensaje
Técnicamente tu formulario es inaccesible. ¿Qué pasaría si tuvieramos javascript desactivado? No podríamos acceder a ningún idioma, ni siquiera podríamos entrar a la página, simplemente, porque no ocurriría nada al cambiar de opción en el select.

Lo normal sería enviar el formulario a una página PHP y en ella ver qué se ha enviado para redirigir a una página u otra.
Tienes razón. Ya me había dado cuenta de que habría que ponerlo en un elemento script, y los links en un noscript, pero no tenía el ordenador a mano para cambiarlo. Pero si de script ya sé poco, de PHP no tengo ni idea. ¿Alguien puede decirme alguna página donde haya un tutorial o algo? ¿O alguien sabe cómo obtener la variable d sin tener que recurrir a una página PHP?
  #6 (permalink)  
Antiguo 29/12/2007, 15:33
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Obtener el nombre del documento HTML con javascript

Hola de nuevo:

Cita:
Iniciado por unokpasabaxaki
La variable d tiene que tener el nombre del documento HTML desde el que se ejecuta el script para cambiar de idioma.
En la variable window.location.href tendrás la ruta absoluta del documento actual, si quieres únicamente el documento (nombre del archivo) puedes utilizar lastIndexOf("/") para encontrar la posición de la última barra. Así tenemos:

Código PHP:
var rutaAbsoluta self.location.href;        // http://asdas.asd/uno/dos/index.html
var posicionUltimaBarra rutaAbsoluta.lastIndexOf("/");
var 
rutaRelativa rutaAbsoluta.substringposicionUltimaBarra "/".length rutaAbsoluta.length );       // index.html
alert(rutaRelativa); 
Bueno, eso que alertamos, rutaRelativa, sería la variable d que estás buscando.

Lo que te decía emiliodeg, que se ha hecho un popurrí de propiedades y métodos, es:
Código:
var pagina = self.location.href.match( /\/([^/]+)$/ )[1];
alert( pagina );
match() sirve para encontrar incidencias de la expresión regular en la cadena que tenemos antes (self.location.href). Esa expresión regular busca una barra, un conjunto de caracteres y el final de la cadena, marcando entre paréntesis ese conjunto de caracteres (que es lo que buscamos). [0] sería para toda la indicencia ( /index.html ) y [1], [2], [3]... para los distintos elementos marcados entre paréntesis, en este caso buscamos [1].

Bueno, tienes esas dos opciones, pero no sé si me acaba de gustar que se muestren en un select, es poco accesible aunque tengan tus clientes javascript activado.




Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #7 (permalink)  
Antiguo 02/01/2008, 06:21
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Obtener el nombre del documento HTML con javascript

Muchísimas gracias, derkenuke.
  #8 (permalink)  
Antiguo 02/01/2008, 06:40
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Obtener el nombre del documento HTML con javascript

De nada, para eso estamos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:47.