Foros del Web » Programando para Internet » Javascript »

problema con location.replace

Estas en el tema de problema con location.replace en el foro de Javascript en Foros del Web. Hola amig@s... A ver si podeis ayudarme... Aparentemente el siguiente script tiene que funcionar, pero no es así: <script language="JavaScript"> <!-- if (window.history.forward(1)) window.location.replace("redireccion.htm") // ...
  #1 (permalink)  
Antiguo 13/11/2003, 03:31
 
Fecha de Ingreso: abril-2003
Mensajes: 20
Antigüedad: 21 años, 8 meses
Puntos: 0
problema con location.replace

Hola amig@s...

A ver si podeis ayudarme... Aparentemente el siguiente script tiene que funcionar, pero no es así:

<script language="JavaScript">
<!--
if (window.history.forward(1))
window.location.replace("redireccion.htm")
// -->
</script>

Está colocado en el HEAD de "intro.htm", y simplemente tiene la misión de redireccionar a "redireccion.htm" en caso de que se retroceda con el botón back desde alguna página. Pero no funciona. Se queda en esa página y no redirecciona a la que yo indico... Porqué?

Gracias anticipadas...
  #2 (permalink)  
Antiguo 13/11/2003, 06:26
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años
Puntos: 38
Hola tonakko.

Yo primero verificaría que el comando se está ejecutando, asi que te pido que cambies el comando window.location... por un alert("Debería cambiar") a ver si llega o no a ese punto. Lo digo porque la sintaxis que usas es la correcta.

Saludos.
  #3 (permalink)  
Antiguo 13/11/2003, 06:29
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años
Puntos: 38
Ejemmm

Revisando la sintaxis del forward(), me parece que estas enviando la página al forward de una vez, es decir, forward() no es una propiedad, es un método. Me temo que la redirección no se va a ejecutar nunca de ese modo.

Yo en tu lugar cambiaría window.history.forward(1) por history.next

Saludos.
  #4 (permalink)  
Antiguo 13/11/2003, 09:22
 
Fecha de Ingreso: abril-2003
Mensajes: 20
Antigüedad: 21 años, 8 meses
Puntos: 0
Hola Kaopectate.
Gracias por tu interés.
La sintaxis sí que es correcta, y el truco lo expone Karlankas en el FAQ 98, para evitar que se vuelva atras desde una página:

<script>

// /////////////// EN EL HEAD ///////////////////

if (history.forward(1)){location.replace(history.forw ard(1))}

</script>


Yo lo único que hago es redireccionar a otra página y no quedarme en la que pulso el botón 'atras'.

He probado con history.next y no funciona... Pero lo más curioso es que no se me ejecuta el alert... Con if(History.next) se me va a la página anterior, ignorando el alert, y con if(History.forward(1)) funciona como el truco de Karlankas, ignoraldo también el alert...
¿Que puede fallar en un script tan sencillo?
  #5 (permalink)  
Antiguo 13/11/2003, 17:34
 
Fecha de Ingreso: abril-2003
Mensajes: 20
Antigüedad: 21 años, 8 meses
Puntos: 0
Hola de nuevo.

He resuelto el problema:

if (history.length>0)
location.replace("pagina.htm")

Dado que la primera página (intro.htm) la forzaré a abrirse en una ventana nueva, el history.length de ésta empezará siendo 0.
Si desde cualquier enlace se quiere volver a ésta, detectará que el history.length ya no es 0, y me redireccionará a 'pagina.htm'...

Sencillo, no?... He resuelto este problemilla tonto, pero no el enigma de porqué el otro script no me funcionaba. Si alguien lo descubre, por favor comuniquenmelo.

Un saludo a tod@s.
  #6 (permalink)  
Antiguo 14/11/2003, 07:12
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años
Puntos: 38
Hola tonakko.

En principio me alegra que hayas resuelto tu problema, y viendolo bien, como lo has resuelto es el modo mas natural.

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:16.