Foros del Web » Programando para Internet » Javascript »

FAQ 98 y history.back();

Estas en el tema de FAQ 98 y history.back(); en el foro de Javascript en Foros del Web. en la faq 98 se dice: <script> // /////////////// EN EL HEAD /////////////////// if (history.forward(1)){location.replace(history.forw ard(1))} </script> es una forma de desabilitar que el usuario ...
  #1 (permalink)  
Antiguo 01/06/2004, 04:38
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
FAQ 98 y history.back();

en la faq 98 se dice:

<script>

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

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

</script>

es una forma de desabilitar que el usuario regrese con el navegador de pa pag2.htm a pag1.htm

el problema es q en la misma pagina tengo una condicion que ejecuta:

<script language="JavaScript">
alert("nº CER no Válido");
history.back();
</script>


y los dos codigos no pueden convivir, (yo no lo probaria)

mi pregunta es concreta:

como tengo q modificar
if (history.forward(1)){location.replace(history.forw ard(1))}

para que la condicion salte, solo si viene de pag2.htm.

o cualquier otra idea me vale.
  #2 (permalink)  
Antiguo 01/06/2004, 05:53
Avatar de Solrak  
Fecha de Ingreso: marzo-2003
Mensajes: 30
Antigüedad: 21 años, 8 meses
Puntos: 0
<script language="JavaScript">
alert("nº CER no Válido");
history.back();
</script>

Por qué no pones en vez de history.back un enlace a la página anterior?

<script language="JavaScript">
alert("nº CER no Válido");
location.href="pagina1.html";
</script>
__________________
http://www.conventoderecas.com
  #3 (permalink)  
Antiguo 01/06/2004, 08:02
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
haciendo history.back(); despues de pulsar el formulario, me guarda los datos puestos en los campos.
  #4 (permalink)  
Antiguo 01/06/2004, 08:26
Avatar de Solrak  
Fecha de Ingreso: marzo-2003
Mensajes: 30
Antigüedad: 21 años, 8 meses
Puntos: 0
Pero si el número de certificado está mal... mejor que lo rellene todo de nuevo, no?

Se puede poner:

location.href=document.referrer;

Aunque no me convence mucho...
__________________
http://www.conventoderecas.com
  #5 (permalink)  
Antiguo 02/06/2004, 02:38
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
es mucha informacion para ponerla de nuevo, y el CER resulta q es clave primaria.

la solucion esta en modificar este codigo

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

para que si viene la la propia pagina pag1.asp, no se ejecute, pero si viene de pag2 si.

en definitica modificar la condicion (history.forward(1)) por (history.forward(1)) <> pag1.asp

pero la sintaxis del jscript no es mi fuerte.
  #6 (permalink)  
Antiguo 02/06/2004, 03:59
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Hola a los dos!

Lo malo es que el history.foward no conserva la URL (o no la muestra). Tal vez con document.referrer (como dice Solrak) se pueda hacer algo. Pero no siempre sale bien Prueba con esto:

if (history.forward(1) && document.referrer!="pag1.asp"){location.replace(hi story.forward(1))}

A ver ahora...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 02/06/2004, 04:19
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
creo q document.referrer no toma ningun valor
  #8 (permalink)  
Antiguo 02/06/2004, 04:54
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Y pasar los valores al formulario?
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #9 (permalink)  
Antiguo 02/06/2004, 05:42
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
lo siento no te entiendo.

yo me refiero a q

if (history.forward(1) && document.referrer!="pag1.asp"){location.replace(hi story.forward(1))}


actua bien si vieners regresando desde pag2.

pero si vienes de pag1, despues de darle a alert, la condicion es valida y regresa a la pagina anterior, que es la ventana del alert.

tal vez no explique bien como esta cronstruida pagina1

es un form con un boton y unos campos.
al darle al summit, se ejecuta un trozo de codigo con un insert

<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form2") Then
...

y dentro evalua un par de condiciones.

si alguna no es valida utilizo
If CER.EOF And CER.BOF Then
if MM_abortEdit = "True" then
%>

<script language="JavaScript">
alert("nº CER no Válido");
history.back();
</script>

con lo que obliga a usuario a regresar a modificar los datos.

ESTE SISTEMA LO HE UTILIZADO DESDE HACE MUCHO Y SIEMPRE A IDO BIEN


el problema aparece en que si los datos son correctos, hago un insert y utilizo el valor de la clave primaria para realizar otrs tareas en sucesivos formularios.

el problema es q si en page2 el usuario en vez de seguir completando datos, le da por regresar con el navegador, se dan problemas de integridad de datos.

solucion, de page 2 no se permite pasar a page1, por lo tanto le pongo el codigo de las faq 98 para no permitir el hechar para atras.

todo podria funcionar bien, pero siempre existe un pero

como en page uno hago un summit y un alert y un backhistory -1

la condicion (history.forward(1) && document.referrer!="pag1.asp")

es valida y echa la pagina palante, es decir otra vez al alert.

========================
espero que lo dicho algun dia le sirva a alguien.

ahora la cuestion es pq la condicion al darle al alert siempre es valida

(history.forward(1) && document.referrer!="pag1.asp")

puede ser q:
document.referrer = ""
o tal vez q
document.referrer "pag1.asp?param1=1¬param2=2

y por eso no funciona

creo


si no me he explicado me preguntais.
  #10 (permalink)  
Antiguo 02/06/2004, 05:46
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Creo que va a ser lo segundo.

Prueba con esto:

if (history.forward(1) && document.referrer.indexOf("pag1.asp")==-1){location.replace(history.forward(1))}
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #11 (permalink)  
Antiguo 03/06/2004, 02:11
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
tampoco,

jodee en trs paginas q lo necesito en dos tengo el alert

history.forward(1) q tipo de valor es, puedo sacarlo por pantalla
y document.referrer
  #12 (permalink)  
Antiguo 03/06/2004, 02:36
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
pego el codigo con la esperanza de q algun dia una especie superior soluciones el problema

Código HTML:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
 If (CStr(Request("MM_insert")) = "form2") Then 
 %> 
    <script language="JavaScript">
      alert("no Válido");
[B]      history.back();[/B]
    </script>
<%end if %>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
[B]  if (history.forward(1) && document.referrer!="pag1.asp"){location.replace(history.forward(1))}[/B]
</script> 

</head>

<body>
<form ACTION="<%=MM_editAction%>" METHOD="POST" name="form2" >
  <input type="submit" value="Insertar">
  <input type="hidden" name="MM_insert" value="form2">
</form>
</body>
</html> 
  #13 (permalink)  
Antiguo 03/06/2004, 03:48
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
el problema esta con el referrer q SIEMPRE da el valor http://localhost/pag0.asp


necesito alguna forma de diferenciar, d donde vengo.

de pag2 con el boton atras
o de pag1 con la orden back()
  #14 (permalink)  
Antiguo 03/06/2004, 04:36
 
Fecha de Ingreso: junio-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola, no se porque tampoco me he parado mucho a mirarlo pero.... si lo que quieres es diferenciar de donde vienes.... porque ... no metes en el formulario un campo oculto que lleve el nombre de la pagina??

No me hagas mucho caso por que... ya te digo que no lo he mirado mucho pero si cuela ;)

ta luego
  #15 (permalink)  
Antiguo 03/06/2004, 05:00
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
Gracias zhu,

el problema lo tengo en no se envia el formulario, pues todo va por back y regresar,
de todas formas igual intento algo con variables session, no me gusta , pero..


tal vez usando
history.previous

pero siempre me da undefined
  #16 (permalink)  
Antiguo 03/06/2004, 05:26
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Y no se puede saber en ASP el referrer?
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #17 (permalink)  
Antiguo 03/06/2004, 05:42
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
si con
Request.ServerVariables("HTTP_REFERER")

pero pasa lo mismo,siempre marca pag0.asp aunque vendas de regresar de pag2 o de actualizar page1.

y la otra la de history.next solo va para netscape

lo intente con variables session, pero lo lo coge, (tendra algo q ver q esta dentro del HEAD)

solo me queda forward(2) no se q pasara.
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 01:14.