javaScript

OSによってメッセージを変更してみる

Webブラウザで生成されるオブジェクトについて書いていきます。WebブラウザにHTMLドキュメントが読み込まれと、オブジェクトが自動的に生成されます。よく登場するwindowオブジェクト、HTMLドキュメントを管理するdocumentオブジェクトなどです。HTMLオブジェクトによっては、画像を管理するimageオブジェクト、フォームを管理するformオブジェクトなどがあります。これらのオブジェクトが、javaScriptから管理できます。

個々のウィンドウに依存しないオブジェクトに、navigatorオブジェクトというものがあります。navigatorオブジェクトには、Webブラウザの名前やバージョンといった情報がプロパティに備え付けれられています。

サンプルコードの実行結果はこちら

オブジェクトの階層

Webブラウザ上のオブジェクトは、windowオブジェクトを頂点とする階層構造というものがあります。
obj_tree
イメージはImageオブジェクトですが、これはdocumentオブジェクトの下の階層です。。そのため「img1」という名前(<img>タグのname属性)のImageオブジェクトには以下のようにアクセスします。

ただ、windowは省略できるので、以下のように書きます。

navigatorオブジェクト

navigatorオブジェクトは、Webブラウザ事態の情報をプロパティに格納するオブジェクトです。windowオブジェクトと、同様に最上位の階層に位置しています。ただ、Webブラウザで複数のウィンドウを開いているとき、windowオブジェクトはその数だけ生成されますが、navigatorオブジェクトは1つしか生成されません。navigatorオブジェクトのプロパティには下記のようにしてアクセスします。

オブジェクトのプロパティを、連想配列のキーとしてアクセスできます。

platformプロパティ

navigatorオブジェクトのplatformプロパティは、Webブラウザが動作しているOSの情報を持っています。Windowsの場合は「Win32」、「Win64」のように最初が「Win」で始まる文字列です。Macの場合は「MacIntel」「MacPPC」といった「Mac」で始まる文字列です。サンプルコードでは、if文を使いplatformプロパティに「Win」「Mac」かを調べ、それに応じたメッセージを表示しています。

IndexOfメソッドは、文字列の中に引数で指定した
文字列が含まれているかどうかをチェックしているメソッドです。見つかった場合は文字列の先頭を0とした数値で位置を返します。見つからない場合は「-1」を返します。

サンプルコードだと変数platformの値が「MacIntel」のとき、「platform.indexOf("Mac")」を実行すると戻り値は0です。

-javaScript
-