Foros del Web » Programando para Internet » Javascript »

salir de un condicional

Estas en el tema de salir de un condicional en el foro de Javascript en Foros del Web. Hola: Una simple duda, quiero que se ejecute una acción sólo si la página se abre como nueva, es decir, si no está abierta desde ...
  #1 (permalink)  
Antiguo 25/11/2002, 18:23
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
salir de un condicional

Hola:

Una simple duda, quiero que se ejecute una acción sólo si la página se abre como nueva, es decir, si no está abierta desde un link. Por tanto, he usado este condicional:


<script>
function siNueva(){
if (document.referrer){salir de la función }
else{sentencias}
}
</script>

......

<body onLoad="siNueva()">

Bueno, pues alguien sabe como sería la sintaxis para salir de esa función o simplemente realizar nada cuando la condición se cumpla.

Muchas gracias.
  #2 (permalink)  
Antiguo 25/11/2002, 19:23
 
Fecha de Ingreso: noviembre-2002
Ubicación: 2600 metros mas cerca de las estrellas
Mensajes: 31
Antigüedad: 21 años, 5 meses
Puntos: 0
function siNueva()
{
if (document.referrer)
{
}
else{sentencias}
}
}

Si no quieres que haga nada pues no escribes nada, lo dejas asi y listo.
__________________
"trata a tus enemigos como tratas a tus amigos, y a tus amigos tratalos como tratas a tus enemigos"
  #3 (permalink)  
Antiguo 26/11/2002, 13:18
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Vamos a ver.
En principio con dejarlo en blanco bastaría pero hay algo que no funciona. No sé si es al utilizar document.referrer. Escribo el código exacto de las dos páginas para ver qué es lo que falla:

*****1.htm********

<html>
<head>
//Esta página abriría, pinchando en el link, la que contiene el script
</head>

<body bgcolor="#FFFFFF" text="#000000">
<a href="2.htm">2</a>

</body>
</html>

*****2.htm********

<html>
<head>
<script>
function siNueva(){
if(document.referrer){}
else {alert('ES NUEVO')}
}
</script>
</head>

<body onLoad="siNueva()">

</body>
</html>

***************

Se supone que:

- Si abro 1.htm y pincho en el link, se carga la página 2.htm y, en teoría se tendría que ejecutar el código no haciendo nada. A lo mejor habría que poner if(document.referrer!=null) pero así tampoco marcha.

- Si abro 2.htm directamente, por tanto no ha sido enlazado desde otro documento, saldría el mensaje de alerta. Lo curioso es que esto ocurre cuando se abre y cuando se enlaza.

¿DONDE ESTARÁ EL ERROR?
  #4 (permalink)  
Antiguo 26/11/2002, 15:10
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Para mi el error lo tiene el mismísimo referre que no hace lo que promete.

He hecho trazas del valor de referrer y siempre está en blanco (debería tener un URL si hay un padre).

En la documentación que he podido encontrar hablan de mal funcionamiento bajo frames, en IE-3, en NS-6, en drag and drop, etc.

¿Por que no intentas comparando opner con null?
  #5 (permalink)  
Antiguo 26/11/2002, 16:13
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
No puedo usar opener porque no es una ventana abierta con window.open, al menos no me funciona. He creado una solución que, aunque no es la más correcta, por el momento me soluciona el problema. Es esta:

<script>
function siNueva() {
if(window.history.length == 0){
sentencias
}else{}
}
</script>

Esto sería algo que en principio no daría los resultados esperados en una página normal, pero se trata de un CD que se ejecuta de manera local al cargarlo, por lo que en principio sería la primera ventana que abriera el navegador.

Gracias por tu ayuda y tu tiempo.
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 12:40.