JavaScript - Cómo simular un pop up modal con window.open

 
Vista:

Cómo simular un pop up modal con window.open

Publicado por María (5 intervenciones) el 11/10/2006 10:25:49
Hola a todos,

tengo un problema con un pop up, estoy desarrollando una aplicación asp.net y quiero simular un pop up modal con el método window.open de javascript. Mi problema es que no consigo cerrar el pop up cuando éste pierde el foco.

Muchas gracias,

María
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cómo simular un pop up modal con window.open

Publicado por Nadal (1 intervención) el 18/10/2006 17:36:59
¿Por qué no usas el metodo "showModalDialog"?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por María (5 intervenciones) el 18/10/2006 17:45:39
En el pop up quiero mostrar una página asp.net. Con ShowModalDialog si cargas una página que tiene que ejecutar código en el servidor se abre otro po up, que no es modal..es decir, se abren el popup modal y otro más...

Muchas gracias de todos modos!! :-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por Nadal (14 intervenciones) el 18/10/2006 17:55:37
Hay un modo, el problema está a la hora de lanzar "alerts", ya que al estar como "modal" la ventana, si pinchas en el mensaje, al tener la orden de permanecer siempre arriba la ventana, el mensaje volvera al segundo plano y solo podras quitarlo presionando la "X", con el botón aceptar no puedes. Te sirve? si te sirve te pongo un ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por Nadal (14 intervenciones) el 18/10/2006 17:59:13
Te dejo aqui un js, que hace las veces de ventana Modal, a ver si te sirve:

var ModalDialogWindow;
var ModalDialogInterval;
var ModalDialog = new Object;

ModalDialog.value = '';
ModalDialog.eventhandler = '';


function ModalDialogMaintainFocus()
{
try {
if (ModalDialogWindow.closed) {
window.clearInterval(ModalDialogInterval);
eval(ModalDialog.eventhandler);
return;
}
ModalDialogWindow.focus();
}
catch (everything) { }
}

function ModalDialogRemoveWatch()
{
ModalDialog.value = '';
ModalDialog.eventhandler = '';
}

function ModalDialogShow(ruta, nombre, argumentos, siguienteFuncion)
{
ModalDialogRemoveWatch();
ModalDialog.eventhandler = siguienteFuncion;

ModalDialogWindow = window.open(ruta,nombre,argumentos);
ModalDialogWindow.focus();
ModalDialogInterval = window.setInterval("ModalDialogMaintainFocus()",5);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por Maria (5 intervenciones) el 19/10/2006 12:58:32
Muchas gracias Nadal.. gracias a lo que me has mandado he conseguido simular el popUp como modal. Lo que he hecho es lo siguiente::

-En la página padre he puesto :

<script type="text/javascript">
function AbrirPopUp()
{
var strFeatures = "left=200,top=100,width=650,height=550,fullscreen=no"
var Pagina = "Plan de control pop up.aspx";
objNewWindow = window.open(Pagina,"newWin", strFeatures);
objNewWindow.focus();
}
</script>
y en el body...
<body onfocus="window.focus = true;">

-En la página popUP:

<script language=javascript>
function SimularPopUpModal()
{
if (window.opener.focus){
window.opener.focus = false;
self.focus();
}
}
</script>
y en el body...
<body onblur="SimularPopUpModal();">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por Nadal (14 intervenciones) el 19/10/2006 13:29:00
De nada. Has probado a lanzar alerts a ver si te deja presionar sobre el botón aceptar? Si funciona avisame, porque me interesaria mucho...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por María (5 intervenciones) el 19/10/2006 14:12:59
He probado a lanzar un pop up desde el pop up y sí funciona correctamente... Prueba el código que te he pasado. Lo que hago en él es mantener la pantalla popup modal sólo cuando se hace click en la página padre:

if (window.opener.focus)
{
window.opener.focus = false;
self.focus();
}

De este modo cuando lanzas un alert no entra en el if y lo trata correctamente.

Espero que te sirva,

María.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por Nadal (14 intervenciones) el 23/10/2006 17:08:53
Hola María. Le eche un vistazo al código que me mandaste. Ahora, tu le dices al PopUp que no se cierre desde el código del PopUp si no me equivoco... Claro, seria lo lógico si el PopUp solo lo vas a llamar desde un sitio y siempre va a ser Modal... Yo lo que quiero, es que según yo quiera, ese PopUp sea Modal o no, y por supuesto, que me funcionen bien las alerts... a ver si me equivoco y me puedes echar un cable. Zenkiu
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por María (5 intervenciones) el 24/10/2006 12:32:45
Desgraciadamente estás en lo cierto, el código que te pasé simula siempre un pop up modal...si encuentro algún modo de realizar lo que stás buscando te aviso, vale?

Un saludo,

María.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por Agus (1 intervención) el 15/02/2007 12:36:32
Utilicé el código que simula un popup modal con window.open, pero claro, si que puedo cambiar al padre desde la barra de herramientas inferior de windows (presionando en el boton de la ventana) si la cierro y vuelvo al popup, crash! Por que no hay padre.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo simular un pop up modal con window.open

Publicado por Jorgito (1 intervención) el 02/08/2007 18:32:12
Augus, por si te sirve para solucionar lo del padre-hijo en ventanas...

Ejemplo de pasar datos del padre al hijo y ejemplo de pasar del hijo al padre.

Ventana Padre que pasa datos a la ventana hija en modo modal.

<HTML>
<BODY>
<INPUT type=text id=DatoPadre1>
<INPUT type=text id=DatoPadre2>
<INPUT type=text id=DatoPadre3>
<br>
<input type='button' onclick="AbreVentanaModal()" value="Modificar">
</BODY>
</HTML>

<SCRIPT>
//creamos una variable de tipo array para pasar y recuperar los datos
var datos=new Array();

function AbreVentanaModal(){
datos[0]=DatoPadre1.value;
datos[1]=DatoPadre2.value;
datos[2]=DatoPadre3.value;

//aqui paso los datos a la ventana hija
datos=showModalDialog('hija.html',datos,'status:no;resizable:yes');

//aqui recuepero datos de la ventana hija
DatoPadre1.value=datos[0];
DatoPadre2.value=datos[1];
DatoPadre3.value=datos[2];
}
</SCRIPT>

Ventana hija que recupera los datos de la ventana padre y al salir le devuelve los datos a la ventana padre.

<HTML>
<BODY onload="RecuperaDatos();">
<INPUT type=text id=DatoHijo1>
<INPUT type=text id=DatoHijo2>
<INPUT type=text id=DatoHijo3>
<br>
<input type='button' onclick="Devuelve()" value="Devuelve">
</BODY>
</HTML>

<SCRIPT>
//creamos una variable de tipo array para recuperar y devolver los datos
var datos=new Array();

//aqui recuperamos los datos de la ventana padre
function RecuperaDatos(){
datos=dialogArguments;
DatoHijo1.value=datos[0];
DatoHijo2.value=datos[1];
DatoHijo3.value=datos[2];
}

//aqui le devolvemos los datos a la ventana padre
function Devuelve(){
datos[0]=DatoHijo1.value;
datos[1]=DatoHijo2.value;
datos[2]=DatoHijo3.value;

returnValue = datos;
window.close();
}
</SCRIPT>

Dios les bendiga...
Seguire a Jesus, foreverer and ever
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar