画面の解像度 (スクリーンのサイズ) を取得する - JavaScript

JavaSciptで画面の解像度、スクリーンサイズを取得するコードを紹介します。

概要

WebサイトにアクセスしてきたPCの画面の解像度を取得したい場合があります。Webサイトへのアクセスのため、アクセスしたPCの画面の解像度を直接は取得できませんが、WebブラウザのJavaScriptを利用するとアクセス元PCの画面の解像度を取得できます。

取得方法

JavaScriptの "window.screen" オブジェクトに画面に関する値が格納されています。
画面の解像度はwidth, heightプロパティから取得できます。

screenオブジェクトには以下のプロパティがあります。
値名値の意味
availHeightNumberタスクバーなどを引いた実際に有効な画面領域の高さ
availWidthNumberタスクバーなどを引いた実際に有効な画面領域の幅
bufferDepthNumber仮想画面(内部画面/オフスクリーン)の色数ビット
colorDepthNumber色深度(カラービット数)
deviceXDPINumberモニタの横方向のDPI
deviceYDPINumber縦方向のDPI
fontSmoothingEnabledBooleanフォントスムージングが有効か
heightNumberスクリーンの高さ
logicalXDPINumberモニタの横方向の論理DPI
logicalYDPINumberモニタの縦方向の論理DPI
msOrientationString画面の向き (縦方向/横方向)
onmsorientationchangeNULL
pixelDepthNumberスクリーン解像度(ビット/ピクセル)
systemXDPINumber横方向のシステム解像度(DPI)
systemYDPINumber縦方向のシステム解像度(DPI)
widthNumberスクリーンの幅

コード例

以下のコードを記述します。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title></title>
  <script type="text/javascript">
  <!--
  function pageLoad() {
    var obj = GetDisplaySize();

    target = document.getElementById("output");
    target.innerHTML = "ScreenWidth:" + obj.width + "</br>"
      + "ScreenHeight:" + obj.height + "</br>"
      + "availWidth:" + obj.availWidth + "</br>"
      + "availHeight:" + obj.availHeight + "</br>";
  }

  function GetDisplaySize()
  {
    // 解像度
    this.width = window.screen.width;
    this.height = window.screen.height;

    //有効画面サイズ
    this.availWidth = window.screen.availWidth;
    this.availHeight = window.screen.availHeight;

    return this;
  }
  // -->
  </script>

</head>
<body onload="pageLoad();">
  <div id="output"></div>
</body>
</html>

解説

ページの読み込み時にpageLoad()関数を実行します。pageLoad関数中で、GetDisplaySize()関数を呼び出します。
GetDisplaySize()関数を呼び出すと、window.screenオブジェクトを取得し、"width","height","avaliWidth","avaliHeight"をプロパティに持つ関数オブジェクトを返します。
戻り値のオブジェクトのプロパティの値を画面に出力し、アクセスしてきた端末の解像度を表示します。

実行結果

上記のHTMLファイルを表示します。下図の実行結果が得られます。

一般的なディスプレイで表示できない、特殊な解像度で実行結果を確認する場合は「リモートデスクトップを利用して特殊な解像度の環境を作成する」の記事を参照し、特殊な解像度でリモートデスクトップ環境を作成し、実行結果を確認します。

解像度 1280×720 の場合


解像度 1920×1080 の場合


解像度 1829×1029 の場合


解像度 948×465 の場合


解像度 800×800 の場合



著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2014-06-27
iPentec all rights reserverd.