28/11/2002, 10:45
|
| Colaborador | | Fecha de Ingreso: diciembre-2001 Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años Puntos: 38 | |
Bien, he hecho mis propias pruebas con idénticos resultados a los tuyoa aunque en mi caso, en lugar de cambiar el contenido de la página en si, estoy tratando de cambiar el valor de una variable definida en el popup.
Mi conclusión es la siguiente:
- Al ejecutar un comando open(), se crea lo que llaman un "hilo" o "thread", lo que quiere decir que se dispara algo que se va a ejecutar en paralelo con la secuencia que lo creó.
Es muy distinto este código:
var a=5;
a+=1;
alert(String(a));
donde cada comando se ejecuta una vez concluido el comando anterior , que el siguiente:
var v=open("algo.htm");
var a=1;
a+=1;
Donde el primer comando comenzó la ejecución de una ventana y sin esperar que el proceso concluya ejecuta la siguiente instrucción.
En el ejemplo que planteas, y en el mio, cuando tratas de alterar un valor del popUp, lo mas seguro es que dicho popUp aún no exista y tu comando, y el mio, fallen. Por eso, cuando le antepones un alert() funciona, porque el alert() crea un retraso en la ejecución del programa principal que le da tiempo al popUp de finalizar la creación del mismo.
En resumen, lo que te está sucediendo no es un error sino una característica del lenguaje, por lo tanto, diseña tomando en cuenta esa realidad.
Yo en tu lugar trataría de crear la ventana justamente con la página necesaria o dejaría la lógica de recarga en el mismo popUp.
Bueno, quizás esperabas un par de comandos como respuesta y te has encontrado con una proclama filosófica. Siempre es mejor que nada.
Saludos. |