JavaScriptのためのBOM
ECMAScriptはJavaScriptのコアですが、WebでJavaScriptを使用する場合、BOM(ブラウザオブジェクトモデル)は間違いなく実際のコアです。 BOMは、Webページのコンテンツとは何の関係もないブラウザ関数にアクセスするための多くのオブジェクトを提供します。長年にわたり、事実上の仕様が不足しているため、ブラウザプロバイダーが希望どおりに拡張するため、BOMの両方が興味深く問題になりました。したがって、ブラウザ間で共有されるオブジェクトは、事実上の標準になります。これらのオブジェクトは、ブラウザとの相互運用性を提供するため、ブラウザに存在します。ブラウザでJavaScriptの最も基本的な部分を標準化するために、W3CはBOMの主な側面をHTML5仕様に組み込んでいます。
PS:「JavaScript Advancedプログラミング」から抜粋したBOMは、ブラウザウィンドウオブジェクトであり、多くのウィンドウ処理APIを提供します。ますます多くのWebAppフレームワークを使用すると、同じウィンドウで異なるページと異なるAJAXデータを処理する必要があり、BOMのコンテンツに精通する必要があります。
1。ウィンドウ
BOMのコアオブジェクトはウィンドウで、ブラウザのインスタンスを表します。ブラウザでは、ウィンドウオブジェクトには二重の役割があります。これは、JavaScriptを介してブラウザウィンドウにアクセスするインターフェイスと、ECMAScriptによって指定されたグローバルオブジェクトの両方です。
以下は、Openの3番目の文字列プロパティです
2。場所
場所は最も便利なBOMオブジェクトの1つであり、現在のウィンドウにロードされたドキュメントに関する情報を提供し、ナビゲーション機能も提供します。実際、ロケーションオブジェクトは、ウィンドウオブジェクトのプロパティとドキュメントオブジェクトのプロパティの両方であるため、非常に特別なオブジェクトです。言い換えれば、window.locationとdocument.locationは同じオブジェクトを参照してください。ロケーションオブジェクトの使用は、現在のドキュメントの情報を保存するという事実だけでなく、URLを独立したフラグメントに解析するという事実にも反映され、開発者が異なるプロパティを介してこれらのフラグメントにアクセスできるようにします。
3。歴史
履歴オブジェクトは、ウィンドウが開いた瞬間から、インターネットをサーフィンするユーザーの履歴を保存します。履歴はウィンドウオブジェクトのプロパティであるため、各ブラウザウィンドウ、各タブページ、さらには各フレームワークにも、特定のウィンドウオブジェクトに関連付けられた独自の履歴オブジェクトがあります。セキュリティ上の理由から、開発者はユーザーが閲覧したURLを知ることができません。ただし、ユーザーが訪問したページのリストを介して、実際のURLを知らなくても前後に進むこともできます。
4。ナビゲーター
Netscape Navigator 2.0によって最初に導入されたナビゲーターオブジェクトは、クライアントブラウザーを識別するための事実上の標準になりました。他のブラウザも他の方法で同じまたは類似の情報を提供しますが(たとえば、window.clientinfor-mation in indow.opera in opera)、ナビゲーターオブジェクトはJavaScriptをサポートするすべてのブラウザーに共通しています。他のBOMオブジェクトの場合と同様に、各ブラウザのナビゲーターオブジェクトには、独自のプロパティセットもあります。次の写真は、ナビゲーターに関するより重要な情報を示しています
5。画面
JavaScriptにはプログラミングにあまり役に立たないオブジェクトがいくつかあり、画面オブジェクトもその1つです。画面オブジェクトは、基本的に、ピクセルの幅や高さなど、ブラウザウィンドウの外側のディスプレイに関する情報を含むクライアントの機能を示すためにのみ使用されます。各ブラウザの画面オブジェクトには、異なるプロパティが含まれています。次の表には、対応するプロパティをサポートするすべてのプロパティとブラウザを示します。次のコードを使用して表示してください
<!doctype html> <html> <head> <script> console.log(screen); </script> </head> <body> screen </body> </html>