Foros del Web » Programando para Internet » Javascript »

Popup->¿Que tipo de ventana utilizar para devolver un argumento?

Estas en el tema de Popup->¿Que tipo de ventana utilizar para devolver un argumento? en el foro de Javascript en Foros del Web. Hola, Quiero utilizar un popup para seleccionar un valor y devolverlo al web form padre. El problema es que si utilizo: Argumentos = window.showModalDialog(Pagina); cuando ...
  #1 (permalink)  
Antiguo 07/06/2006, 06:28
 
Fecha de Ingreso: marzo-2006
Mensajes: 30
Antigüedad: 18 años, 1 mes
Puntos: 0
Popup->¿Que tipo de ventana utilizar para devolver un argumento?

Hola,

Quiero utilizar un popup para seleccionar un valor y devolverlo al web form padre. El problema es que si utilizo:

Argumentos = window.showModalDialog(Pagina);

cuando abre el popup, si el usuario ejecuta cualquier botón me abre una nueva ventana con el formulario en modo "normal", esto es mostrando los botones del explorador, la dirección etc. Esto no ocurre si utilizo:

Argumentos = window.open(Pagina);

Pero en este caso no me devuelve ningún argumento!!

En el popup el código que tengo es:

window.returnValue = ArgumentosAEnviar;
window.close();


Vamos, que necesito las dos cosas: una única ventana popup donde el usuario pueda ejecutar código (.net, no javascript) y cuando pulse Aceptar me devuelva un valor.

Gracias
  #2 (permalink)  
Antiguo 07/06/2006, 09:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Usar showModalDialog puede crear ventanas muy bonitas pero no funcionan en todos los navegadores, así que no te lo recomiendo... Las ventanas modales estándar son alert para mostrar un mensaje "a secas", confirm que devuelve true/false según la selección, y prompt que entrega el texto que se introduce en el recuadro de texto de la ventana...

Si es una página "formateada" o con código php/asp/CGI (incluso html) creo conveneiente las ventanas que se abren con window.open...

Para pasar datos, tan solo debes usar un script con opener por delante del elemento de la página donde quieras recibirlos, luego sencillamente puedes usar un window.close() para cerrar la ventana...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 08/06/2006, 00:06
 
Fecha de Ingreso: marzo-2006
Mensajes: 30
Antigüedad: 18 años, 1 mes
Puntos: 0
Otro problema que tengo es que en el formulario padre hay código a continuación de abrir la ventana popup, que utilizando window.open no me ejecuta. En cambio con showModalDialog sí.

Qué quieres decir con 'debes usar un script con opener por delante del elemento de la página donde quieras recibirlos', ¿me podrías mandar un ejemplo? Gracias.
  #4 (permalink)  
Antiguo 08/06/2006, 01:56
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Habré puesto ejemplos en muchas páginas, pero no voy a buscarlos porque es bastante sencillo:

Una página principal:
...
<form name="ejemplo" >
<input type="text" name="dato" />
<input type="button" value="entrada" onclick="window.open('pedirDato.html')" />
...
</form>

Y en pedirDato.html:

...
<form>
<input type="text" name="entrada" />
<input type="button" value="enviar" onclick="opener.document.forms.ejemplo.dato.value = entrada.value; window.close()" />
...
</form>

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 22/06/2006, 04:21
 
Fecha de Ingreso: marzo-2006
Mensajes: 30
Antigüedad: 18 años, 1 mes
Puntos: 0
Al final me dieron la solución en el foro, gracias Lalin.

Se inserta "<base target="_self">" en la ventana popup modal y funciona OK


http://www.forosdelweb.com/showthread.php?t=380353

Pongo está instruccion <base target="_self"> en el html exactamente en el
<html>
<head>
<base target="_self">
</head>
<body>
</body>
</html>
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 16:32.