Ventanas con el mismo nombre

Programo en pl/sql. El submit del formulario de una página me manda a un procedimiento que automáticamente me abre una ventana emergente donde cargo datos en excel.
Funciona todo correctamente y si cierro la ventana emergente y vuelvo a ejecutar, sigue todo bien.
El problema viene si repito el proceso sin cerrar la ventana, de nuevo sale el mensaje sobre si desea guardar o abrir el archivo excel, pero en cuanto lo vuelves a abrir, sale un error diciéndome que ya existe un archivo con ese nombre. Tras eso se suele abrir dejando la anterior ventana con excel en blanco, hasta que tras repetir el proceso varias veces e ir dejando sucesivas páginas en blanco, el navegador (en este caso IE7) peta totalmente y se bloquea.
¿Podría de alguna manera comprobar si ya está abierta la ventana que se pretende abrir de nuevo para no abrir ventanas nuevas y evitar este colapso? ¿O existe otra solución?
Gracias

1 respuesta

Respuesta
1
Especifica un nombre de ventana para la ventana emergente (2º parámetro de window. Open o target en los enlaces). Así si ya hay una abierta la reemplazará.
Muchas gracias.
Poniendo nombre en el traget he conseguido evitar el duplicado de ventanas.
El "problema" que tengo ahora es que al ejecutar una segunda ver no me sustituye sino que me cierra la ventana anterior, y tengo que ejecutar una tercera vez para que de nuevo me abra el archivo.
Es extraño. Tal vez sea porque no se trata de una ventana html normal, sino de Excel. Puedes probar a almacenar el valor de retorno de window. Open() para, si ya abriste una ventana antes, cerrarla antes de abrir la nueva.
El submit que llama al procedimiento es el de este formulario:
"htp.P('<form action="NOMBRE_PROCEDIMIENTO" method="get" enctype="multipart/form-data" name="formulario" style="border:0; margin:0; vertical-align:top" target="FicheroX">');"
La ventana la abre el procedimiento con esta sentencia:
"HTP.P('Content-type:application/vnd.ms-excel');
HTP.P('Content-Disposition: attachement; filename= NOMBRE_FICHERO"
El valor de window. ¿open() lo analizaría entonces con javascript al pulsar el botón del submit del primer procedimiento?
Gracias de nuevo por tus respuestas y perdón por ser tan pesado :S
Usar get con multipart/form-data parece erróneo
Si sólo quieres pasar un parámetro en la url puedes usar -con javascript- window. Open(), bien porque el botón ejecute el procedimiento javascript, o porque el formulario tenga un onsubmit. Almacenas lo que retorna, y la próxima vez que se llame cierras la ventana anterior usando ese valor antes de abrirla de nuevo.
La ventana con el fichero excel me la abría el propio procedure pl/sql al que llamaba pasándole los parámetros necesarios para el acceso a la base de datos, sin utilizar window.open
Tengo que tratar de solucionarlo sin utilizar javascript. Si no lo consigo seguiré tu consejo.
Muchas gracias de todos modos ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas