La escala mencionada aquí no se refiere a la escala del tamaño del navegador, sino a la escala porcentual del contenido web del navegador (presione las teclas CTRL y + de señalización o las teclas de firma).
Hay muchas formas de detectar este tipo de escala. QQ Space usa Flash para detectar si el navegador está escala. Aquí hay un método JavaScript para detectar la escala del navegador.
Para IE6, lo ignoro porque IE6 solo puede escalar el texto.
Primero hablemos sobre la interfaz de detección estándar proporcionada por el navegador. Window.DevicePixelratio es la relación de píxeles físicos en el dispositivo y píxeles independientes del dispositivo. Este atributo se puede utilizar para detectar si la página web está escalada. En un navegador PC normal, el valor predeterminado es 1 si no hay zoom de forma predeterminada. Actualmente, Firefox, Chrome, etc. están bien compatibles.
Bueno, es hora de hablar sobre cómo se trata IE. IE proporciona dos atributos: Window.screen.devicexdpi y Window.screen.LogicalXDPI. DeviceXDPI son los píxeles físicos correspondientes en el dispositivo, y LogicalXDPI es la proporción de píxeles independientes del dispositivo. La interfaz de detección del estándar de estimación también se basa en una mejora del método IE. El valor predeterminado de estos dos atributos en los sistemas sobre Windows XP+ es 96, porque el valor predeterminado del sistema es 96DPI.
Para los navegadores que no admiten los dos anteriores, también puede usar las dos propiedades de Window.outerwidth y Window.innerWidth. El ancho externo devuelve el ancho externo real del elemento de la ventana, el nivel interno devuelve el ancho interno real del elemento de la ventana, ambos anchos incluyen el ancho, incluida la barra de desplazamiento.
Con estos atributos, básicamente puede resolver navegadores comunes en los navegadores de PC. El código de implementación es el siguiente:
Si el valor de retorno de la función DetectZoom es de 100, es el nivel de zoom predeterminado, si es más de 100, se agranda, y si es inferior a 100, está encogido.
función detectZoom () {var ratio = 0, pantalla = window.screen, ua = navigator.useragent.tolowercase (); if (window.devicepixelratio! == undefined) {ratio = window.devicepixelratio; } else if (~ ua.indexof ('msie')) {if (screen.devicexdpi && screen.logicalxdpi) {ratio = screed.devicexdpi / screen.logicalxdpi; }} else if (window.outerwidth! == undefined && window.innerwidth! == undefined) {ratio = window.outerwidth / window.innerwidth; } if (ratio) {ratio = math.round (relación * 100); } relación de retorno;};Artículos originales, indique la reimpresión: reimpreso del desarrollo front-end