Pastalablog in はてな

時代はブログ! 日記もあるよ→http://pastak-diary.hatenadiary.com

最近の悩み ( JavaScriptでブラウザの拡大率を取得したい )

最近の主な悩みはブラウザの拡大率を取得する際のテクニックについてです。

Google Chromeの場合、ブラウザの拡大率を取得したければ

 Math.round((window.outerWidth / window.innerWidth)*100) / 100

とすると取得できるということになっているようです*1

MacGoogle Chromeだとウィンドウに枠がないので、拡大率が1の場合にwindow.outerWidthの値とwindow.innerWidthの値が一致して、それらしく感じます。また、Windowsでウィンドウを最大化している場合も同様です。

ですが、この方法実は問題があって、Windowsで最大化していない場合はウィンドウに枠が付く(しかもサイズはWindowsの設定で任意に変更可能)ので、window.outerWidthの値がウィンドウの枠の太さ分window.innerWidthの値よりも大きくなってしまうので拡大率が正確に取得できません。

ちなみに window.devicePixelRatio では拡大率のみを取り出すことが出来ないのでこの場合は利用できません。

何か良い方法をご存知の方がいらっしゃいましたらご教授ください。よろしくおねがいします。