Las nuevas ventanas de Internet Explorer no respetan el nivel de zoom de restablecimiento al usar script
Importante
La aplicación de escritorio Internet Explorer 11 está retirada y sin soporte a partir del 15 de junio de 2022 para determinadas versiones de Windows 10.
Todavía puede acceder a sitios antiguos heredados que requieren Internet Explorer con el modo Internet Explorer en Microsoft Edge. Obtenga más información.
La aplicación de escritorio Internet Explorer 11 se redirigirá progresivamente al explorador Microsoft Edge, más rápido y seguro. En última instancia, se deshabilitará a través de Windows Update. Deshabilite IE hoy.
En este artículo se proporciona información sobre cómo solucionar el problema de que las ventanas nuevas que se crean mediante script no respetan la configuración Restablecer el nivel de zoom de las ventanas y pestañas nuevas en Internet Explorer 9 y versiones posteriores.
Versión del producto original: Internet Explorer 9 y versiones posteriores
Número KB original: 2741211
Síntomas
Imagina la siguiente situación: Use Internet Explorer 9 o una versión posterior para navegar a una página que tenga un nivel de zoom distinto del 100 %. Esta página contiene un botón que abre una nueva ventana con dimensiones específicas mediante script. Tiene la opción Restablecer nivel de zoom para nuevas ventanas y pestañas establecida en la pestaña Opciones avanzadas de Internet Explorer Internet. Al hacer clic en el botón, la nueva ventana se abre con el mismo nivel de zoom que la ventana principal. Esto puede provocar algún comportamiento inesperado en la ventana secundaria donde las partes de la ventana secundaria no están visibles.
Causa
En Internet Explorer 9 y versiones posteriores, las ventanas creadas con la API (así como y ) se han diseñado para no respetar el nivel de zoom restablecer para las nuevas ventanas y pestañas y heredar siempre el factor de zoom de su página window.open showMod[al:eless]Dialog createPopup primaria.
Solución
Las nuevas dimensiones de ventana y las dimensiones de los objetos que contiene se pueden escalar según el nivel de zoom que hereda. Las fórmulas pertinentes son:
El nivel de zoom real se puede calcular como:
var zoomLevel = window.screen.deviceXDPI / window.screen.logicalXDPI;Para contraescalar un elemento, la fórmula es:
var objectWidth = desiredUnscaledWidth / zoomLevel;var objectWidth = desiredUnscaledWidth / zoomLevel;