여기에 언급 된 스케일링은 브라우저 크기 스케일링이 아니라 브라우저 웹 컨텐츠의 스케일링 백분율을 나타냅니다 (CTRL 및 + 부호 키 또는 - 부호 키를 누르십시오).
이러한 종류의 스케일링을 감지하는 방법에는 여러 가지가 있습니다. QQ Space는 Flash를 사용하여 브라우저가 스케일링되는지 여부를 감지합니다. 다음은 브라우저의 스케일링을 감지하는 JavaScript 방법입니다.
IE6의 경우 IE6은 텍스트 만 확장 할 수 있기 때문에 무시합니다.
먼저 브라우저에서 제공하는 표준 탐지 인터페이스에 대해 이야기하겠습니다. Window.devicePixelratio는 장치의 물리적 픽셀과 장치의 독립적 인 픽셀의 비율입니다. 이 속성은 웹 페이지가 확장되어 있는지 여부를 감지하는 데 사용될 수 있습니다. 일반 PC 브라우저에서 기본적으로 확대 / 축소가없는 경우 기본값은 1입니다. 현재 Firefox, Chrome 등은 잘 지원됩니다.
글쎄, 이제 IE가 어떻게 다루어 지는지에 대해 이야기 할 시간입니다. IE는 Window.screen.devicexdpi 및 Window.screen.logicalxdpi의 두 가지 속성을 제공합니다. DeviceXDPI는 장치의 해당 물리적 픽셀이며 LogicalXDPI는 장치의 독립적 인 픽셀의 비율입니다. 추정 표준의 검출 인터페이스는 또한 IE 방법의 개선을 기반으로합니다. 시스템의 기본값은 96dpi이기 때문에 Windows XP+ 위의 시스템 에서이 두 속성의 기본값은 96입니다.
위의 두 가지를 지원하지 않는 브라우저의 경우 Window.outerWidth 및 Window.innerWidth의 두 속성을 사용할 수도 있습니다. auterwidth 윈도우 요소의 실제 외부 너비를 반환하고, 내면은 창 요소의 실제 내부 너비를 반환합니다. 두 너비에는 스크롤 막대를 포함한 너비가 포함됩니다.
이러한 속성을 사용하면 기본적으로 PC 브라우저에서 공통 브라우저를 해결할 수 있습니다. 구현 코드는 다음과 같습니다.
DetectZoom 함수의 반환 값이 100 인 경우 기본 줌 레벨이며 100보다 큰 경우 확대되고 100 미만인 경우 축소됩니다.
함수 detectzoom () {var ratio = 0, screen = window.screen, ua = navigator.useragent.tolowercase (); if (wind } else if (~ ua.indexof ( 'msie')) {if (screen.devicexdpi && screen.logicalxdpi) {ratio = screen.devicexdpi / screen.logicalxdpi; }} else if (window.outerwidth! == undefined && wind } if (비율) {ratio = math.round (비율 * 100); } 반환 비율;};원본 기사, 재 인쇄를 표시하십시오 : 프론트 엔드 개발에서 재 인쇄