Foros del Web » Programando para Internet » Javascript »

ventana modal

Estas en el tema de ventana modal en el foro de Javascript en Foros del Web. buenos dias, necesito abrir una ventana popup de forma modal, es decir que no se pueda cerrar hasta que se hayan completado los datos de ...
  #1 (permalink)  
Antiguo 29/05/2005, 11:16
 
Fecha de Ingreso: agosto-2002
Mensajes: 88
Antigüedad: 21 años, 9 meses
Puntos: 1
ventana modal

buenos dias, necesito abrir una ventana popup de forma modal, es decir que no se pueda cerrar hasta que se hayan completado los datos de un formulario y pulsado el boton enviar.
  #2 (permalink)  
Antiguo 30/05/2005, 08:27
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 2 meses
Puntos: 5
creo que existe la funcion showModalDialog pero creo solo es plenamente compatible con microsoft explorer. (creo)


si me equivoco (creo), decidlo.
  #3 (permalink)  
Antiguo 30/05/2005, 08:36
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 3 meses
Puntos: 4
se podria simular algo asi como que cuando la ventana pierda el foco
le vuelva a poner el foco, salvo si salis por un boton aceptar o cerrar.
Tambien habria que manejar si apretan la cruz de la ventanita que no se cierre.

Voy a investigar si se pude...
por lo pronto si queres probar tenes que manejar

window.onblur
window.onunload

Igual no estoy muy seguro si es posibe y viable.
Luego te cuento
__________________
Holden-@r
http://www.hvaldez.com.ar
  #4 (permalink)  
Antiguo 31/05/2005, 07:48
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 3 meses
Puntos: 4
Acá encontre un ejemplo, alguien que lo testee con mozilla y demas browsers perke aca en mi laburo solo hay explorer.

Código:
<html>
<script language=JavaScript>

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(Title,BodyText,Buttons,EventHandler)
{

ModalDialogRemoveWatch();
ModalDialog.eventhandler = EventHandler;

var args='width=350,height=125,left=325,top=300,toolbar=0,';
args+='location=0,status=0,menubar=0,scrollbars=1,resizable=0'; 

ModalDialogWindow=window.open("","",args); 
ModalDialogWindow.document.open(); 
ModalDialogWindow.document.write('<html>');
ModalDialogWindow.document.write('<head>'); 
ModalDialogWindow.document.write('<title>' + Title + '</title>');
ModalDialogWindow.document.write('<script' + ' language=JavaScript>');
ModalDialogWindow.document.write('function CloseForm(Response) ');
ModalDialogWindow.document.write('{ ');
ModalDialogWindow.document.write(' window.opener.ModalDialog.value = Response; ');
ModalDialogWindow.document.write(' window.close(); ');
ModalDialogWindow.document.write('} ');
ModalDialogWindow.document.write('</script' + '>'); 
ModalDialogWindow.document.write('</head>'); 
ModalDialogWindow.document.write('<body onblur="window.focus();">');
ModalDialogWindow.document.write('<table border=0 width="95%" align=center cellspacing=0 cellpadding=2>');
ModalDialogWindow.document.write('<tr><td align=left>' + BodyText + '</td></tr>');
ModalDialogWindow.document.write('<tr><td align=left><br></td></tr>');
ModalDialogWindow.document.write('<tr><td align=center>' + Buttons + '</td></tr>');
ModalDialogWindow.document.write('</body>');
ModalDialogWindow.document.write('</html>'); 
ModalDialogWindow.document.close(); 
ModalDialogWindow.focus(); 
ModalDialogInterval = window.setInterval("ModalDialogMaintainFocus()",5);

}

</script>

<script language=JavaScript>


function YesNoCancel(BodyText,EventHandler)
{
var Buttons=''; 
Buttons = '<a href=javascript:CloseForm("Yes");>Yes</a> ';
Buttons += '<a href=javascript:CloseForm("No");>No</a> ';
Buttons += '<a href=javascript:CloseForm("Cancel");>Cancel</a> ';
ModalDialogShow("My Custom Title",BodyText,Buttons,EventHandler);
}

function YesNoCancelReturnMethod()
{
document.getElementById('modalreturn1').value = ModalDialog.value;
ModalDialogRemoveWatch();
}
</script>

<BODY >

<table border=1 cellpadding=2 cellspacing=2 align=center width="60%">
<tr><td align=left></td></tr>
<tr><td align=left></td></tr>
<tr><td align=left></td></tr>
<tr>
<td align=left><a href="javascript:YesNoCancel('Yes, no, or cancel me','YesNoCancelReturnMethod()');">Show Modal #1</a> 
1. <input type=text id=modalreturn1 name=modalreturn1 value=''></td>
</tr>
</table>

</BODY>
</HTML>
nota: desabiliten los bloqueos de js que hace el sp2 de microsoft o sino entran en un loop infinito je!
__________________
Holden-@r
http://www.hvaldez.com.ar
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 15:00.