.Script オブジェクト '99. 3.23
l.お知らせ 内容 LINK FILE   HTML Win PC Unix MS-DOS C C++ Mfc Java  
目次のページ.スクリプト   オブジェクト   基本的   他用例  
 一覧 (2)  ハンドラ  オブジェクト  変数  コンストラクタ  関数  
オブジェクトの種類  用例  備考:オブジェクト  NAME・ID  オブジェクトを調べる

T オブジェクトの種類 object
top などのオブジェクト名は、全て参照であると考えられます。
オブジェクト : 目的別に作られた、部分的なプログラム。
参照  :  オブジェクトなどの本体そのものと 同等に使用できる特別の変数。

 topなど
( 配列 )

 this





( NAME= )
( ID = )
( 参照 )


(配列等)


: あらかじめ名前(参照名) が付いているオブジェクト。( 下記参照。)
: 同じ種類のオブジェクトは、配列にまとめられています。
個々のオブジェクトは、images[0] のように配列番号も指定します。
: 処理しようとするコ-ドを書く、その部分。
タグの中のスクリプトでは、そのタグのオブジェクト。
<SCRIPT>の中のスクリプトでは、そのウィンドウのオブジェクト。
   ※ A タグで this を表示した場合は、
     <A HREF= >の、リンク先URLが表示されます。


: あらかじめ NAME = で名前を付けておいた部分。
:     〃    ID=  〃  . . . ( IE4.0 のみ。)
: オブジェクトを変数に代入したもの。
オブジェクトの参照は、オブジェクトと同等に使用できます。
オブジェクトに名前(または別名) を付けたい場合には参照を作ります。
: コンストラクタが用意されていれば、自分でオブジェクトを作れます。
配列・日時・文字列・数値 のコンストラクタが用意されています。
コンストラクタの用例は、[配列] 等のページを参照下さい。

以下は ウィンドウオブジェクトです。
top

: ウィンドウ全体のオブジェクトです。以下のメンバオブジェクトを含みます。
ウィンドウオブジェクトの性質は全て同じです。( top, window, frames[0] など。)
window
 frames
  top
  parent
  window
  self
: ひとつのウィンドウ(またはフレ-ム) のオブジェクト。
: window の中に表示するフレームのオブジェクト(の配列)。
: 一番外側のウィンドウの オブジェクト(の参照)。
: ひとつ外側のウィンドウの 〃 。
: 現在のウィンドウ自身の 〃 。
:     〃         〃 。
 ウィンドウオブジェクトは、他のウィンドウオブジェクトの参照をメンバに持ちます。
 オブジェクトの参照は、オブジェクトと同等に使用できます。
  ウィンドウオブジェクトの参照は 芋蔓式にたどることができます。
  例 top.window.top.window (全体の中の子の、その親の中の子)。
 親がない場合の親オブジェクト(の参照)には、現在のオブジェクトが代入されます。
 子がない場合の子オブジェクト(の参照)には、 〃
   例えば、ウィンドウが分割されていなければ、top, parent, window は同じです。
 ウィンドウがフレ-ムに分割されている場合には、オブジェクトは配列になります。
  例 top[0] や window[0] が、一番上 または左 のフレーム。
   この場合は、top.frame[0] のように書くと分かり易くなると思います。

以下は ウィンドウオブジェクトのメンバオブジェクトです。
navigator
 mimeTypes
 plugins
Data
Math
Number
String
Array
event
history

location
document
: ブラウザ情報。( ブラウザ名・バージョンなど。)
: ブラウザが扱えるファイルの情報。
: ブラウザが使用できるプラグインの情報。
: ob = new Data() で作った 日時 オブジェクト。
: 数学関数オブジェクト
: ob = new Number() で作った 数値 オブジェクト。
: ob = new Data() で作った 文字列 オブジェクト。
: ob = new Data() で作った 配列 オブジェクト。
: イベントの情報。( イベントの種類・位置 )
: これまでに表示したページの、履歴。
 ( 履歴のペ-ジを表示したり、履歴を書換えるなど。)
: ページのURL。( これは document のメンバにもなっています。)
: ページの内容。( ページの、背景色やリンク先など。)

以下は ドキュメントオブジェクトのメンバオブジェクトです。
location 以外は、ページ内に複数あるので、配列になっています。
location

anchors


links

images
embeds
applets
forms
: ページのURL。
   ( 現在表示中のページ / これから表示しようとするページ。)
: ページ内の、位置名が付いたアンカー。( <A NAME= > )
   ( anchors[0] が ページ内に書かれている1個目のアンカー。)
   ( anchors[0].name は、A NAME= で付けたオブジェクト名。)
: ページ内の、アンカ-タグおよびクリッカブルマップの、リンク先。
   ( links[0] が ページ内に書かれている1個目のリンク先URL。)
: ページ内の画像。
: ページ内のサウンド。( <EMBED SRC= > )
: ページ内のアプレット。
: ページ内のフォーム。 ( forms[0] が1個目の FORM。)
NAME="F1" のように名前を付けておけば、
forms[0] などと書く代りに、F1 のように書くことができます。

以下は フォームオブジェクトのメンバオブジェクトです。
これらはフォーム内に複数あるので、配列になっています。
フォームも配列なので、二次元配列になっています。
Text
Password
Textarea
File
Select
Option
Radio
Checkbox
Button
Hidden
Submit
Reset
<INPUT TYPE="text"> の部分のオブジェクト。以下同様。
<INPUT TYPE="password">
<TEXTAREA>
<INPUT TYPE="file">
<SELECT>
<SELECT><OPTION></SELECT>
<INPUT TYPE="radio">
<INPUT TYPE="checkbox">
<INPUT TYPE="button">
<INPUT TYPE="hidden">
<INPUT TYPE="submit">
<INPUT TYPE="reset">
Text などのオブジェクト名は実在しません。 ( 使用できません。)
NAME="N1" のように付けたデータ名を、オブジェクト名としても使用できます。
NAME="N1" のように、あらかじめオブジェクト名を付けておけば、
forms[0][0] などと書く代りに、F1.N1 のように書くことができます。
オブジェクト ・ メンバ
プログラムは、目的別に作られた オブジェクトと呼ばれる部分の集合体です。
オブジェクトの中には、変数・関数・オブジェクト が含まれます。
オブジェクトの中の、変数・関数・オブジェクト は、メンバと呼ばれます。

メンバの特定
メンバを指定するには、top.name のように、所属するオブジェクトを指定します。
メンバオブジェクトの中のメンバは、top.window.name のように、
 所属する 親のオブジェクト も指定します。

親オブジェクトの指定を省略した場合
コードを書いた部分が基準になります。
例えば HTMLタグの中にコードを書く場合は、親は そのタグのオブジェクトです。
例 

<A NAME="PX" HREF="#PX"
OnClick="alert(top.window.document.anchors[2].name)">名前</A>
<SCRIPT>〜</SCRIPT>の中に書いた場合は、親は window です。

親のオブジェクトに 指定したメンバがないときには、
更にその親を指定したのと同じです。
 例えば ボタンフォーム内に書いた name は、そのボタンの名前を意味します。
 同じ ボタンフォーム内に bgColor と書くと、
 ボタンフォームには bgColor というメンバがないので、
 その親( Button の親の forms の親 ) の、document の背景色を意味します。

子のオブジェクトの指定は省略できません
<SCRIPT>〜</SCRIPT>の中にコードを書いた場合は、親は window です。
 そのメンバの、document や document.forms などの指定は省略できません。
 これらの中には、例えば name という同じメンバが複数あるからです。

親オブジェクトの指定が必要な場合
コードを書くオブジェクトに、親オブジェクトと同名のメンバがあるときは、
コードを書くオブジェクトのメンバが優先されるので、親オブジェクトの指定が必要です。
 例えば、IE4.0 には、ほぼ全てのタグに title というメンバがあります。
 ページタイトルを操作したい場合には、少なくても document.title と書く必要があります。

ページがフレーム表示されている場合は、window はそのフレームを意味します。
ウィンドウ全体を操作したい場合には、top.window または top と書く必要があります。

コードを書くオブジェクトとは 別なオブジェクトを操作する場合には、
操作したいオブジェクトを指定する必要があります。
 <SCRIPT>〜</SCRIPT>の中に writeln('<HTML> ・・・ ') のように書いて、
 新しい別なページを作る場合も同様です。
 この場合は、document.writeln() ではなく、
 top.window.document.writeln() のように書く必要があります。

NAME="EX"
T 用例 :
クリックされたときに、その部分の処理を行なうオブジェクト(this) の変数
  href に、#EX という文字列を代入します。
そのオブジェクトは、#OBJ ではなく、#EX の位置を表示します。
<A HREF="#OBJ" OnClick="this.href=('#EX')">位置[EX]を表示</A>
その部分のオブジェクト this の記述は省略できます。
オブジェクトの区切には . の代りに : を記述できます。( ただし this 以外 )

クリックされたときに、ページの 背景色に、違う色を代入します。
<A HREF="#EX" OnClick="document:bgColor=('#F0FFFF');">背景色=水色</A>
<A HREF="#EX" OnClick=         "bgColor=('#F0FFFF')">背景色=茶色</A>
親オブジェクトの指定は省略できます。
<A>タグのオブジェクトは、ペ-ジの表示内容(document) に含まれています。

背景色の設定は<BODY>タグで行ないますが、
<BODY>はクリックできないので、<A>タグを使用しています。
IE4.0 では、<BODY>タグや、<B>等でも OnClick が使用できます。

NAME="OBJ"
T 備考 : オブジェクト
オブジェクトは、特定の処理を行なうプログラム部分です。
オブジェクトは、変数・関数・メンバオブジェクト の集合体です。

Windows用のプログラムは、オブジェクトと呼ばれる部分が集まって出来ています。
例えば、ページの内容を表示する部分のプログラムは document オブジェクトです。
document オブジェクトには、背景色用の変数 bgColor や、
新しいウィンドウを表示するための関数 open() などが含まれています。
document オブジェクトには、リンク先の処理を行なう links オブジェクトや、
画像を処理する images オブジェクトなどの メンバオブジェクトも含まれています。
<A> や <IMG> などは、ページ内に複数あるので、
オブジェクト(の参照) の配列が作られ、配列に名前が付けられています。
個々のオブジェクトは、links[0] や images[5] のように、配列番号で指定できます。

参考
[クラス] : 部分的なソ-スプログラムの 雛形です。( 見れませんが、有ると考えます。)
[コンストラクタ] : クラスをソ-スプログラムとして実際に使用する記号です。
   コンストラクタを書いたクラスだけが、実際のプログラム(オブジェクト) になります。
[メンバ] : オブジェクト(またはクラス) の構成要素。 ( 変数、関数、オブジェクト。)
[プロパティ] : オブジェクト(またはクラス) 内の変数。
   変数に別な値を代入して、オブジェクトの属性(プロパティ) を変更できます。
   オブジェクト内の 関数は、動作中に作り直すようなことはできません。
   しかし、変数は if() や OnClick= などを使って、別な値を代入できます。
   変数に別な値を代入すれば、オブジェクトは別な働きをすることになります。
[メソッド] : オブジェクト(またはクラス) 内の関数。
[参照] : オブジェクトを変数に代入したもので、オブジェクトと同等に使用できます。
   ページを表示するなどのプログラムは、高速に動作させるためにメモリに書込まれます。
   オブジェクトや メンバ変数などは、メモリ上の位置(ポインタ) を使って指定されます。
   JavaScript では、ポインタはその内容(オブジェクトなど) として扱われます。
    ( JavaScript では、そのようにプログラムが作られます。)
   ※ C++言語では、ポインタ(位置) と参照(内容) は区別されます。
参考
ソ-スファイルは ブラウザによって、プログラム(オブジェクト) に変換されます。
必要なデータが OS(Windows) に渡され、ウィンドウが表示されます。
従って、ウィンドウ(の絵) は OS(Windows) の所有物です。
( ウィンドウを表示した後、操作しないのならオブジェクトは不要になります。)
OSは、 がクリックされた等の イベント情報を、オブジェクトに送ります。
オブジェクトは、イベントの情報を OnClick などのハンドラで受取り、処理します。
T NAME ( および ID )
name は、オブジェクト内の、そのオブジェクトの名前を代入する為の 変数です。
HTMLタグで、NAME="ABC" と書くと、
その部分のオブジェクトのメンバ変数 name に、ABC が代入されます。
これは、ページ内の位置を示す名前としても使用されます。 ( 共用されます。)
IE4.0 では、MANE の代りに ID も使用できます。
ID は、あらかじめ定義してある STYLE をその位置に適用する為にも共用されます。
※ これら HTMLタグ( NAME, ID, STYLE ) に付いては、
  [HTML] の、[リンク], [スタイル] のペ-ジに記事があります。


T オブジェクトを確かめるには
目的のオブジェクトが実在するかどうかを調べるには、オブジェクトを表示します。

存在すれば、[object] と表示されます。
存在しなければ、存在しない変数を表示したものとして処理され、
  [宣言されていません] というエラ-メッセ-ジが表示されます。
メンバオブジェクトが存在しない場合には、[undefined] と表示されます。
中間のメンバオブジェクトが存在しない場合には、
  [オブジェクトではありません] というエラ-メッセ-ジが表示されます。
<FORM>
<INPUT TYPE="button" VALUE="document" OnClick="alert(document)">
<INPUT>
</FORM>
 ← クリックして確認できます。

以下は、存在しないオブジェクト( zzz ) を表示する例です。
IE4.0 でエラーメッセージが表示されたら、 継続する を選択します。
継続すれば、残りのボタンもクリックでき、エラーメッセージを表示できます。
※ 重大なエラーの場合は、エラーメッセージも表示されない場合がほとんどです。
document.zzz の zzz は、オブジェクトなのか メンバ(変数) なのか不明ですが、
一番右側に書いてあるので、メンバであるものとしてエラ-メッセ-ジが表示されます。

関数が存在するかどうかを確かめるには、関数名だけを表示します。
存在すれば、[function・・・] と表示されます。


変数が存在するかどうかを確かめるには、変数名を表示します。
存在すれば、変数の値が表示されます。
何も表示されない場合は、変数に値が代入されていない場合です。


以下は、存在しない変数( zzz ) を表示する例です。


T

  mtoga@sannet.ne.jp   登録日 '96. 6.15
URL : http://www.sannet.ne.jp/userpage/mtoga/index.html