JavaScriptのウィンドウ、画面、ドキュメントの違いは何ですか?


243

これらの用語は、DOMのグローバル環境と同じ意味で使用されています。違いは何ですか(ある場合)、それぞれをいつ使用すればよいですか?

回答:


248

Windowglobal objectブラウザのメインJavaScriptオブジェクトルート、別名は、ドキュメントオブジェクトモデルのルートとしても扱うことができます。次のようにアクセスできますwindow

window.screenまたはscreen、物理的な画面サイズに関する小さな情報オブジェクトです。

window.documentまたは単にdocument表示される可能性のある(または、より良いのは、レンダリングされた)ドキュメントオブジェクトモデル/ DOMのメインオブジェクトである

windowはグローバルオブジェクトなので、プロパティ名だけでそのプロパティを参照できwindow.ます。書き留める必要はありません-ランタイムによって認識されます。


46
ドキュメントはウィンドウよりも大きくなる可能性があります。ウィンドウはブラウザの「見える」部分です。
Mandy

1
@Mandy html要素がドキュメントの一部でない場合は表示されません。ドキュメントにiframeを添付するまで、ウィンドウがまったく表示されないiframeを作成できます
Peter Aron Zentai

27
@Mandyからのコメントは混乱windowして、ビューポート。A windowは、ブラウザータブまたは<iframe>(または非推奨<frame>)のJavaScriptオブジェクトです。ビューポートがレンダリングさの長方形であるdocumentタブまたはフレーム内に見られます。
ベネットブラウン

2
window.documentまたはdocumentは常に同じですか?
BOZ

2
windowはグローバルオブジェクトであるため、[window。]を実際に書き込むことなく、そのすべてのプロパティ/メソッドにアクセスできます。そのため、window.documentは単なるドキュメントとして記述でき、もちろん、プロパティ自体とまったく同じものを指します。複数の方法を参照しただけで同じです。
Peter Aron Zentai

101

まあ、ウィンドウはブラウザに読み込まれる最初のものです。このウィンドウオブジェクトには、length、innerWidth、innerHeight、name、閉じている場合の名前、親などのプロパティの大部分があります。

では、ドキュメントオブジェクトはどうでしょうか。ドキュメントオブジェクトは、ブラウザに読み込まれるhtml、aspx、php、またはその他のドキュメントです。ドキュメントは実際にはウィンドウオブジェクト内に読み込まれ、タイトル、URL、Cookieなどのプロパティを利用できます。これは本当に何を意味するのでしょうか。つまり、ウィンドウのプロパティにアクセスする場合はwindow.propertyであり、ドキュメントの場合はwindow.document.propertyであり、これはdocument.propertyとしても使用できます。

ドム

それは十分に簡単に思えます。しかし、IFRAMEが導入されるとどうなりますか?

iframe


14
基本を学習しようとしている人を誤解させる:「ドキュメントオブジェクトは、ブラウザにロードされるhtml、aspx、php、またはその他のドキュメントです。」ブラウザはHTMLとCSSをレンダリングし、JavaScriptを実行します。PHPなどのサーバー側の言語のファイルは、ブラウザからは見えません。
ベネットブラウン

これは本当により良い理解のために絵に続いて役に立つ説明..です
ファリスRayhan

49

簡単に言えば、以下でより詳細に、

  • window 実行コンテキストとそのコンテキストのJavaScriptのグローバルオブジェクト
  • document HTMLの解析により初期化されたDOMを含みます
  • screen 物理ディスプレイの全画面を説明します

参照してくださいW3CMozillaのこれらのオブジェクトの詳細については言及を。3の中で最も基本的な関係は、各ブラウザのタブは独自のを持っていることであるwindow、とwindowありwindow.documentwindow.screen性質。ブラウザタブのwindowグローバルな文脈で、そうdocumentscreenを参照してくださいwindow.documentwindow.screenFlanaganのJavaScript:Definitive Guideに従って、3つのオブジェクトの詳細を以下に示します。

window

各ブラウザタブには、独自のトップレベルのwindowオブジェクトがあります。各<iframe>(および非推奨の<frame>)要素にwindowも、親ウィンドウ内にネストされた独自のオブジェクトがあります。これらのウィンドウはそれぞれ独自のグローバルオブジェクトを取得します。window.window常にを指しwindowますが、window.parentwindow.top窓を囲むを参照してください可能性がある、他の実行コンテキストへのアクセスを与えます。以下に加えてdocumentscreen以下に説明するwindowプロパティには、

  • setTimeout()そしてsetInterval()、タイマーにイベントハンドラをバインド
  • location 現在のURLを与える
  • historyメソッドback()forward()タブの変更可能な履歴を与える
  • navigator ブラウザソフトウェアの説明

document

windowオブジェクトには、documentレンダリングされるオブジェクトがあります。一意のIDが割り当てられると、HTML要素がグローバルオブジェクトに追加されるため、これらのオブジェクトは一部混乱します。たとえば、HTMLスニペットで

<body>
  <p id="holyCow"> This is the first paragraph.</p>
</body>

段落要素は、次のいずれかによって参照できます。

  • window.holyCow または window["holyCow"]
  • document.getElementById("holyCow")
  • document.body.firstChild
  • document.body.children[0]

screen

windowオブジェクトはまた、持っているscreen物理的なディスプレイを記述するプロパティを持つオブジェクト。

  • 画面のプロパティwidthheightフルスクリーンです

  • 画面のプロパティavailWidthavailHeightツールバーを省略

レンダリングされたドキュメントを表示する画面の部分はJavaScript のビューポートであり、オペレーティングシステムとの対話について話すとき、画面のアプリケーションの部分をウィンドウと呼ぶため、混乱を招く可能性があります。getBoundingClientRect()任意の方法document要素が持つオブジェクトが返されtopleftbottom、及びright特性は、ビューポート内の要素の位置を記述する。


window.onloadドキュメントオブジェクトを使用するのと同等の手順があります。
FilipeCanatto


48

window実際のグローバルオブジェクトです。

これscreenは画面であり、ユーザーの表示に関するプロパティが含まれています。

documentDOMがどこにあるかです。


11
documentすることもできるwindow.documentscreenとすることができるwindow.screen、とwindowすることができるwindow.window(又はwindow.window.window):-P
ロケット危険物

6
@PeterAronZentai:これwindowは、がグローバル変数であるため、グローバルwindowオブジェクトのプロパティになるためです。:-)
ロケットハズマット2012年

1
ajaxで新しいページを開く必要があります。現在のページ全体を新しいページに置き換えたいです。$(document).load(page);を使用する必要がありますか?または$(window).load(page); ?
マーティンAJ

11

windowあなたが呼び出すことができるように、すべてのものが含まれていますwindow.screenし、window.documentそれらの要素を取得します。このフィドルをチェックして、各オブジェクトの内容をきれいに印刷してください:http : //jsfiddle.net/JKirchartz/82rZu/

次のように、firebug / devツールでオブジェクトの内容を確認することもできます。

console.dir(window);
console.dir(document);
console.dir(screen);

windowすべてのルートであり、screen画面の寸法を持ち、document最上位のDOMオブジェクトです。あなたはそれをwindowスーパーのようなものと考えることができますdocument...


1

ウィンドウは、ブラウザに読み込まれる最初のものです。このウィンドウオブジェクトには、length、innerWidth、innerHeight、name、閉じている場合の名前、親などのプロパティの大部分があります。

ドキュメントオブジェクトは、ブラウザに読み込まれるhtml、aspx、php、またはその他のドキュメントです。ドキュメントは実際にはウィンドウオブジェクト内に読み込まれ、タイトル、URL、Cookieなどのプロパティを使用できます。これは実際に何を意味するのでしょうか。つまり、ウィンドウのプロパティにアクセスする場合はwindow.propertyであり、ドキュメントの場合はwindow.document.propertyであり、document.propertyとしても使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.