JavaScript アドバンス

JS ブラウザオブジェクトモデル

1. ブラウザオブジェクトモデル (BOM) とは

ブラウザオブジェクトモデル (BOM) は、JavaScriptがブラウザと「対話」することを可能にします。

BOMには公式な標準規格(スタンダード)は存在しません。しかし、最新のブラウザはJavaScriptのインタラクティブ性を実現するために、ほぼ同様のメソッドやプロパティを実装しているため、それらは一般的にBOMのメソッドおよびプロパティとして参照されています。

2. Windowオブジェクト

window オブジェクトはすべてのブラウザでサポートされています。これはブラウザのウィンドウそのものを表すオブジェクトです。

JavaScriptのすべてのグローバルなオブジェクト、関数、変数は、自動的に window オブジェクトのメンバとなります。

  • グローバル変数は window オブジェクトのプロパティになります。
  • グローバル関数は window オブジェクトのメソッドになります。

HTML DOMの document オブジェクトでさえも、次のように window オブジェクトのプロパティとして扱われます。

window.document.getElementById("header");

これは、以下の記述と全く同じ意味を持ちます。

document.getElementById("header");

3. ウィンドウのサイズ (Window Size)

ブラウザウィンドウのサイズを取得するために、主に2つのプロパティが使用されます。これらのプロパティはいずれもサイズをピクセル(pixels)単位で返します。

  • window.innerHeight - ブラウザウィンドウの内部の高さ(ピクセル単位)
  • window.innerWidth - ブラウザウィンドウの内部の幅(ピクセル単位)

ここで言う「ブラウザウィンドウ(ブラウザのビューポート)」には、ツールバーやスクロールバーのサイズは含まれません

3.1 実装コードの例

// ウィンドウの幅を取得
let w = window.innerWidth;
// ウィンドウの高さを取得
let h = window.innerHeight;

4. その他のWindowメソッド

Windowオブジェクトには、操作に役立つさまざまなメソッドが用意されています。

  • window.open() - 新しいウィンドウを開く
  • window.close() - 現在のウィンドウを閉じる
  • window.moveTo() - 現在のウィンドウを移動する
  • window.resizeTo() - 現在のウィンドウのサイズを変更する