internet-explorer size modal-dialog frameset

Internet Explorer 9 ignora dialogWidth/Height para showModalDialog con un conjunto de marcos



internet-explorer size (3)

También discutí el tema en el Foro de desarrollo web de Internet Explorer y pude obtener una solución que quiero compartir aquí:

Según Microsoft Connect, Testing pudo verificar que este problema se resolvió en Internet Explorer 10 en Windows 8 Developer .

Para IE9, el problema podría evitarse eliminando la declaración de tipo de documento dentro de dialog.html . Esto fuerza a esta página en particular al modo Quirks pero luego el diálogo se muestra nuevamente en el tamaño correcto.

Tengo una aplicación de intranet anterior que necesita mostrar dos marcos (una barra de menú fija y una vista de datos de contenido variable) dentro de una ventana de diálogo modal. En este momento, el diálogo se abre utilizando la función window.showModalDialog y todo funciona bien, siempre que abra la página en Internet Explorer 8 (con cualquier modo de visualización) o en Internet Explorer 9 con la Vista de compatibilidad habilitada.

Desafortunadamente, al desactivar la Vista de compatibilidad en IE9, la ventana de diálogo siempre se abre en un tamaño de 266 x 138 píxeles, independientemente de los valores especificados dialogWidth y dialogHeight. Creé un pequeño ejemplo que muestra el problema:

index.html (la página cargada inicialmente):

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <body> <input type="button" value="popup" onclick="showModalDialog (''dialog.html'', null, ''dialogWidth:500px;dialogHeight:400px;resizable:yes'')" /> </body> </html>

dialog.html (la página se abrió dentro de la ventana de diálogo):

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> <html> <frameset rows="*, 70"> <frame src="frame1.html" /> <frame src="frame2.html" /> </frameset> </html>

frame1.html / frame2.html (el contenido de ambos cuadros):

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <body> <p>Frame Content</p> </body> </html>

El problema solo ocurre si estoy mostrando un documento de conjunto de marcos dentro del cuadro de diálogo. Al abrir un documento html regular (que contiene un cuerpo con cierto contenido), el tamaño se establece como se especifica en la llamada a la función.

Además, cambiar el tamaño del diálogo después de que el documento se haya cargado solo funciona para documentos normales, no para conjuntos de marcos, luego inserte el siguiente código después de la etiqueta html de apertura en dialog.html :

<head> <script type="text/javascript" /> window.setTimeout (function () { window.dialogWidth = "500px"; window.dialogHeight = "400px"; }, 10000); </script> </head>

Como no quiero cambiar la estructura general de la aplicación (especialmente la basada en marcos) y no sé si estoy haciendo algo mal o si he encontrado un error en Internet Explorer, cualquier pista para resolverlo este problema es bienvenido


El mismo problema que también enfrenté, finalmente funcionó para mí cambiando la compatibilidad de metaetiquetas a ie8.

Elimine todos los tipos de letra en el cuadro de diálogo modelo y simplemente agregue la metaetiqueta como

"& nlt; meta http-equiv =" Compatible con X-UA "content =" IE = EmulateIE8 & ngt; "

Espero que esto sea de ayuda.


Agregue este código a dialog.html

<head> <script> (function () { var _b = document.createElement(''body''); var _doc = document.documentElement; _doc.insertBefore(_b, _doc.firstChild ); _doc.removeChild(_b); })(); </script> </head>