ここで言及したスケーリングは、ブラウザサイズのスケーリングを指しませんが、ブラウザのWebコンテンツのスケーリングの割合(Ctrlと + Sign KeysまたはThe Sign Keysを押します)を指します。
この種のスケーリングを検出するには多くの方法があります。 QQスペースはフラッシュを使用して、ブラウザがスケーリングされているかどうかを検出します。ブラウザのスケーリングを検出するJavaScriptメソッドを次に示します。
IE6の場合、IE6はテキストのみをスケーリングできるため、私はそれを無視します。
まず、ブラウザが提供する標準検出インターフェイスについて説明しましょう。 Window.DevicePixelratioは、デバイス上の物理ピクセルとデバイスの独立したピクセルの比率です。この属性を使用して、Webページがスケーリングされているかどうかを検出できます。通常のPCブラウザでは、デフォルトでズームがない場合、デフォルト値は1です。現在、Firefox、Chromeなどはよくサポートされています。
さて、IEがどのように対処されているかについて話す時が来ました。 IEは、window.screen.devicexdpiとwindow.screen.logicalxdpiの2つの属性を提供します。 DeviceXDPIは、デバイス上の対応する物理ピクセルであり、LogicalXDPIはデバイスの独立したピクセルの割合です。推定基準の検出インターフェイスは、IEメソッドの改善にも基づいています。システムのデフォルト値は96DPIであるため、Windows XP+上のシステム上のこれら2つの属性のデフォルト値は96です。
上記の2つをサポートしていないブラウザの場合、window.outerwidthとwindow.innerwidthの2つのプロパティを使用することもできます。外側幅は、ウィンドウ要素の実際の外部幅を返し、内幅はウィンドウ要素の実際の内部幅を返します。どちらの幅にも、スクロールバーを含む幅が含まれます。
これらの属性を使用すると、基本的にPCブラウザーで一般的なブラウザを解決できます。実装コードは次のとおりです。
Detectzoom関数の返品値が100の場合、それはデフォルトのズームレベルであり、100を超える場合、拡大し、100未満の場合は縮小されます。
関数detectzoom(){var比= 0、screen = window.screen、ua = navigator.useragent.tolowercase(); if(window.devicepixelratio!== undefined){ratio = window.devicepixelratio; } else if(〜ua.indexof( 'msie')){if(screen.devicexdpi && screen.logicalxdpi){ratio = screen.devicexdpi / screen.logicalxdpi; }} else if(window.outerwidth!== undefined && window.innerwidth!== undefined){ratio = window.outerwidth / window.innerwidth; } if(比率){比= math.round(比率 * 100); } return比;};オリジナルの記事、再版を示してください:フロントエンド開発から再版