código de programa
función openEgg(tipo){
window.showModalDialog('../EggPlay.aspx?type='+type,'','dialogHeight: 600px; dialogWidth: 800px; borde: elevado; centro: sí; ayuda: no; redimensionable: no; estado: no; desplazamiento:No;');
}
Javascript tiene muchos métodos integrados para generar cuadros de diálogo, como window.alert(), window.confirm(), window.prompt(), etc. Sin embargo, IE proporciona más métodos para admitir cuadros de diálogo. Como por ejemplo:
showModalDialog() (compatible con IE 4+)
showModelessDialog() (compatible con IE 5+)
El método window.showModalDialog() se utiliza para crear un cuadro de diálogo modal que muestra contenido HTML. Dado que es un cuadro de diálogo, no tiene todas las propiedades de una ventana generalmente abierta con window.open().
El método window.showModelessDialog() se utiliza para crear un cuadro de diálogo no modal que muestra contenido HTML.
Cuando usamos showModelessDialog() para abrir una ventana, no tenemos que usar window.close() para cerrarla. Cuando se abre en modo no modal [IE5], la ventana que abre el cuadro de diálogo aún puede realizar otras funciones. operaciones, es decir, el cuadro de diálogo no siempre está abierto. Es el foco superior y se cierra automáticamente cuando cambia la URL de la ventana que lo abre. El cuadro de diálogo modal [IE4] siempre tiene el foco (el foco no se puede quitar hasta que se cierre). El cuadro de diálogo modal está vinculado a la ventana que lo abrió, por lo que cuando abrimos otra ventana, su relación de vínculo aún se conserva y se oculta debajo de la ventana activa.
Cómo usarlo:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
Descripción del parámetro:
URL
Parámetro requerido, tipo: cadena. Se utiliza para especificar la URL del documento que se mostrará en el cuadro de diálogo.
vArgumentos
Parámetro opcional, tipo: variante. Se utiliza para pasar parámetros al cuadro de diálogo. El tipo de parámetros pasados no está limitado, incluidas matrices, etc. El cuadro de diálogo obtiene los parámetros pasados a través de window.dialogArguments.
Características
Parámetro opcional, tipo: cadena. Se utiliza para describir la apariencia del cuadro de diálogo y otra información. Puede utilizar uno o más de los siguientes, separados por punto y coma ";".
dialogHeight es la altura del cuadro de diálogo, no menos de 100 px. La unidad predeterminada de dialogHeight y dialogWidth en IE4 es em, mientras que en IE5 es px. Por conveniencia, al definir un cuadro de diálogo modal, use px como unidad.
dialogWidth: ancho del cuadro de diálogo.
dialogLeft: Distancia desde el lado izquierdo del escritorio.
dialogTop: distancia desde el escritorio.
centro: {yes | no | 1 | 0}: si la ventana está centrada, el valor predeterminado es sí, pero aún se pueden especificar la altura y el ancho.
ayuda: {sí | no | 1 | 0}: si se muestra el botón de ayuda, el valor predeterminado es sí.
redimensionable: {sí | no | 1 | 0} [IE5+]: si se puede cambiar el tamaño. El valor predeterminado es no.
estado: {sí | no | 1 | 0} [IE5+]: si se muestra la barra de estado. El valor predeterminado es sí[Modal] o no[Modal].
desplazamiento:{ sí | no | 1 | 0 | activado | desactivado }: indica si el cuadro de diálogo muestra barras de desplazamiento. El valor predeterminado es sí.
También se utilizan varios atributos en HTA, que generalmente no se utilizan en páginas web normales.
dialogHide:{ sí | no | 1 | 0 | activado | desactivado }: si el cuadro de diálogo está oculto durante la impresión o la vista previa de impresión. El valor predeterminado es no.
borde: {hundido | elevado}: especifica el estilo del borde del cuadro de diálogo. Se plantea el valor predeterminado.
sin adornos:{ sí | no | 1 | 0 | encendido | apagado }: El valor predeterminado es no.
Pasar parámetros:
Para pasar parámetros al cuadro de diálogo, se pasan a través de vArguments. No hay límite de tipo. Para los tipos de cadena, la longitud máxima es 4096 caracteres. También puede pasar objetos, por ejemplo:
código de programa
test1.htm
=====================
<guión>
var mxh1 = new Array("mxh","net_lover","Mencio Capítulo E")
var mxh2 = ventana.open("acerca de:en blanco","ventana_mxh")
// Pasar matriz al cuadro de diálogo
ventana.showModalDialog("test2.htm",mxh1)
// Pasa el objeto de ventana al cuadro de diálogo.
ventana.showModalDialog("test3.htm",mxh2)
</script>
prueba2.htm
=====================
<guión>
var a = ventana.dialogArguments
alert("Los parámetros que pasaste son: " + a)
</script>
prueba3.htm
=====================
<guión>
var a = ventana.dialogArguments
alert("El parámetro que pasó es un objeto de ventana, nombre: " + a.name)
</script>
La información se puede devolver a la ventana que abrió el cuadro de diálogo a través de window.returnValue y, por supuesto, también puede ser un objeto. Por ejemplo:
código de programa
prueba4.htm
====================
<guión>
var a = ventana.showModalDialog("test5.htm")
for(i=0;i<a.length;i++) alerta(a[i])
</script>
prueba5.htm
====================
<guión>
función enviar a ()
{
var a=nueva matriz("a","b")
ventana.returnValue = a
ventana.cerrar()
}
</script>
<cuerpo>
<formulario>
<valor de entrada="Retorno" tipo=botón onclick="enviar a()">
</formulario>
Preguntas frecuentes:
1. ¿Cómo enviar en un cuadro de diálogo modal sin abrir una nueva ventana?
Si su navegador es IE5.5+, puede usar un iframe con un atributo de nombre en el cuadro de diálogo y puede configurar el destino para que sea el nombre del iframe al enviar. Para IE4+, puede utilizar un marco con una altura de 0: ejemplo,
código de programa
prueba6.htm
====================
<guión>
ventana.showModalDialog("test7.htm")
</script>
prueba7.htm
====================
if(ventana.ubicación.búsqueda) alerta(ventana.ubicación.búsqueda)
<conjunto de marcos filas="0,*">
<frame src="/blog/about:blank">
<frame src="test8.htm">
</frameset>
prueba8.htm
====================
<formulario target="_self" método="get">
<nombre de entrada=valor de texto="prueba">
<tipo de entrada=enviar>
</formulario>
<guión>
if(ventana.ubicación.búsqueda) alerta(ventana.ubicación.búsqueda)
</script>
2. ¿Se pueden pasar parámetros directamente al cuadro de diálogo a través de http://servername/virtualdirname/test.htm?name=mxh ?
La respuesta es no. Pero es posible en el marco.