none
Javascriptのスクリーンサイズを得る関数screen.width,screen.heightが異常値を返す RRS feed

  • 質問

  • Internet Explorer 10 on Windows8において、Javascriptの関数のうち、スクリーンサイズ(画面の解像度)を得る関数が正しく動作していません。

     

    例:1920*1080(FullHD)のモニターの場合。

    関数:document.write(screen.width + '*' + screen.height);

    Firefox 17:1920*1080

    Google Chrome:1920*1080

    IEコンポーネントブラウザ(IE7指定):1920*1080

    Internet Explorer 10:1670×939

    一応縦横比は16:9に近いですが、これでは画面サイズに依存するJavascriptが正しく動作しません。

     

    なお、この現象はデスクトップモードのIE10(32bit?)のみ発生します。

    MetroモードのIE10では正常な値(1920*1080)が表示されます。

     追加:

    F12開発者ツールにて、各ブラウザモードに変更した結果です。

    IE10標準:1670*939

    IE10互換表示:1670*939

    IE9モード:1670*939

    IE8モード:1670*939

    IE7モード:1670*939

    環境:

    OS:Windows8 Exterprise 64bit

    CPU:AMD FX-8120

    Memory:16GB

    Graphic: ATI RADEON HD 6770

    Monitor:MITSUBISHI RDT233WX-3D


    • 編集済み Darastof 2013年2月5日 14:41 情報追加
    2013年2月5日 14:28

回答

  • 本問題について、原因が判明いたしました。

    Internet Explorer 10のメニュー→表示(V)→拡大(Z)が115%になっておりました。
    これにより、Window.width,Window.heightが1920*1080の約1/1.15倍である1670*939となっていたようです。
    これを100%に戻すことにより正常な値に、150%にしたときに1/1.50倍となることを確認しました。

    返信を頂いた(´・ω・`)さま、佐祐理さま、お騒がせいたしました。

    2013年2月6日 10:00

すべての返信

  • IE10 & Win8ですが、再現しませんでした。
     
    モニター、グラボは同じメーカーのものでも確認しましたが、1920*1080になりました。(各種ドキュメントモードも)
    Catalyst Control Centerは諸事情でOFFですが。
    ・・・原因、なんでしょうね。
    2013年2月5日 15:48
  • 私も再現しませんでした。

    環境問題かもしれないですね。もしくはDPIが違うとか?

    # IE10ではセーフモードのIEのショートカットがなくなったんですね。

    2013年2月5日 15:51
  • 本問題について、原因が判明いたしました。

    Internet Explorer 10のメニュー→表示(V)→拡大(Z)が115%になっておりました。
    これにより、Window.width,Window.heightが1920*1080の約1/1.15倍である1670*939となっていたようです。
    これを100%に戻すことにより正常な値に、150%にしたときに1/1.50倍となることを確認しました。

    返信を頂いた(´・ω・`)さま、佐祐理さま、お騒がせいたしました。

    2013年2月6日 10:00