window オブジェクト

クライアントサイド JavaScript では、ブラウザウィンドウを表す window というオブジェクトがグローバル変数として定義されています。

console.log(window);

window オブジェクトはスコープチェーンの先頭に存在するため、window オブジェクトが持つプロパティ・メソッドはグローバル変数・グローバル関数として参照することが可能です。

console.log(window.document);
console.log(document);
console.log(window.document === document);

console.log(window.setTimeout);
console.log(setTimeout);
console.log(window.setTimeout === setTimeout);

つまり、var 無しで変数宣言すると、window オブジェクトのプロパティとして代入されます。(非推奨ですが)

name = 'abcd';
console.log(window.name);

Document オブジェクト

window オブジェクトのプロパティの中で非常に重要なものが document です。

document プロパティは、ウィンドウ中に表示されているコンテンツを表す Document オブジェクトを参照します。 Document オブジェクトには、HTML ページの情報を検索・更新するための様々なメソッド (DOM API) が用意されていますが、それらのメソッドの詳細については後述の章で説明します。

// ページタイトルを表示
console.log(document.title);

Location オブジェクト

Location オブジェクトは、ウィンドウ中に表示されているドキュメントの現在の URL を表します。

以下のプロパティにアクセスすることで、現在の URL の構成要素を取得できます。

console.log(location.protocol);
console.log(location.port);
console.log(location.host);
console.log(location.hostname);
console.log(location.pathname);
console.log(location.search);
console.log(location.hash);
console.log(location.origin);

ページを遷移する場合は location または location.href に URL を代入するか、location.assign メソッドを使用します。

location = 'http://www.google.co.jp';
location.href = 'http://www.google.co.jp';
location.assign('http://www.google.co.jp');

ブラウザの履歴に追加せずに遷移したい場合は replace メソッドを使用します。

location.replace('http://www.google.co.jp');

ページをリロードする場合は reload メソッドを使用します。

location.reload();

History オブジェクト

History オブジェクトには、ウィンドウの閲覧履歴情報が格納されています。

// 履歴の件数
console.log(history.length);

以下のメソッドを利用することで、履歴を元にページを操作することができます。

// 1つ前に進む
history.forward();

// 1つ前に進む
history.back();

// 指定位置まで戻る。この場合は2つ前に戻る
history.go(-2);

これらの API を元に独自に履歴をアプリケーションを開発しようとすると、実際にはとても複雑になります。 そこで現在では HTML5 History API が追加されています。詳細については後述の章で紹介します。

Navigator オブジェクトには、ブラウザの種類・ベンダー・バージョン情報等が格納されています。 ユーザーエージェントを取得したい場合には userAgent プロパティを参照します。

console.log(navigator.appName);
console.log(navigator.appVersion);
console.log(navigator.userAgent);
console.log(navigator.platform);

results matching ""

    No results matching ""