About Dynamic HTML

ダイナミックHTML(Dynamic HTML)とは、今までのHTMLでは不可能だった、 自由なポジショニングや動的表現を可能にしたHTML技術の事です。 今まで、アニメーションなどの動的表現をする時、Javaやプラグイン、 GIFアニメーションなどの技術を使って表現していました。 しかしDynamic HTMLでは、JavaScriptやVBScriptなどを用い、HTMLの記述のみで、 比較的簡単に表現する事が出来ます。 なおかつ、ブラウザのブラウズ機能自身が持つ機能なので、JAVAやプラグインやなどと違い、 ページ全体を使ったより自由な表現が出来ます。
97年9月現在、Dynamic HTMLをサポートしているのは、Microsoft Internet Explorer4.0と、 Netscape Communicator(Netscape Navigator4.0)の2つのブラウザです。 ただし、この2つのブラウザのDHtmlは仕様は似ているのですが、実現方法が共に違うためほとんど互換性はありません。
Dynamic HTMLの長所・短所
[長所] [短所]
Dynamic HTMLのブラウザ別の概要
●Netscape Communicator4.0のDynamic HTML

基本構図は、JavaScript1.2 + LAYER (+JASS)です。
NN4.0のDynamic HTMLは、<LAYER>タグを用いることにより、 自由なポジショニングや、JavaScript1.2を併用して画面全体を使った、アニメーションなどが可能です。
また、JavaScript Style Sheet(JASS)をサポートし、JavaScriptによるStyleSheetの記述が出来ます。 これにより、例えばJavaScript1.2を用い画面の解像度を取得して、それにあわせてフォントサイズを変更するなどの事が出来ます。
また、Dynamic Font技術により、サーバーからフォントデータを取得できます。


●Internet Explorer4.0のDynamic HTML

基本構図は、Style Sheet + SCRIPT (+ActiveX)です。
IE4.0のDynamic HTMLは、ページ内のほぼ全ての要素にアクセスが出来るのが特徴です。 例えば、指定のタグのオプションをゲットしたり、タグ内のHTMLを取得出来たりします(詳しくはサンプルを参照して下さい)。 また、ActiveXのマルチメディアコントロールを使用することにより、 動的で、インタラクティブなコンテンツを簡単に作成できます。

Dynamic HTML Event Model

動的でインタラクティブなダイナミックHTMLページを作成するには、 イベントハンドラの使用が不可欠です。ここでは、Netscape Communicator(Navigator4)と Internet Explorer4で使用できるイベントハンドラの紹介と それの使い方について紹介したいと思います。
Mouse EventNN4IE4
onClick 指定のHTML要素上でクリックした時に発生。 OK OK
onDblClick 指定のHTML要素上でダブルクリックした時に発生。 OK OK
onMouseover 指定のHTML要素上にマウスポインタが入ると発生。 OK OK
onMouseout 指定のHTML要素上からマウスポインタがはずれると発生。 OK OK
onMousedown 指定のHTML要素上でマウスをクリックした瞬間に発生。 OK OK
onMouseup 指定のHTML要素上でマウスクリックして、離した瞬間に発生。 OK OK
onMousemove 指定のHTML要素上でマウスマウスが動くと発生。 OK OK
Keyboard Event
onkeydown キーボードのキーを押した瞬間に発生。 OK OK
onkeyup キーボードのキーを押して、離した瞬間に発生。 OK OK
onkeypress キーボードのキーを押しっぱなしにしてる限り発生。 OK OK
Event object -get position-
x コンテンツ表示領域のマウス座標xを返す。レイヤーの中の場合だと親レイヤー内の座標を返す。 OK OK
y コンテンツ表示領域のマウス座標yを返す。レイヤーの中の場合だと親レイヤー内の座標を返す。 OK OK
screenX ディスプレイ上のマウスx座標。 OK OK
screenY ディスプレイ上のマウスy座標。 OK OK
pageX コンテンツ表示領域においてのx座標。レイヤーの中でも変わらない。 OK NO
pageY コンテンツ表示領域においてのy座標。レイヤーの中でも変わらない。 OK NO
layerX LAYER上のマウスx座標 OK NO
layerY LAYER上のマウスy座標 OK NO
clientX ブラウザウインドウの中のマウスx座標。 NO OK
clientY ブラウザウインドウの中のマウスy座標。 NO OK
offsetX HTML要素上のマウスx座標。 NO OK
offsetY HTML要素上のマウスy座標。 NO OK


このページはHTML及び、JavaScriptについて知識があるという前提で書かれています。
Internet Explorer4.0におけるDynamic HTMLの最大の特徴は、 HTMLのオブジェクト化により、全てのHTML要素にアクセス出来るということです。 これは簡単に言うと、全てのタグの操作が可能という事でもあります。
今までは画像や、フォームエレメント等については、JavaScript(VBScript)で操作できましたが、 タグに囲まれた文字を瞬間的に変更したりする事はJavaScript等を使用しても不可能でした。 ところがIE4.0においては、これらが可能になったのです。
つまり、画像など以外のHTML要素でも、 リロードせずに瞬間的に文字の色やフォントを変更したりする事が出来ます。


■HTML要素へのアクセス

IE4.0、HTMLオブジェクトモデルにおいては、各HTML要素(タグなど)に対して、 アクセス及びコントロールが出来ます。下記の例を参照して下さい。


<!-- Sample-No.1 --->
<font id="MyTag" style="color:blue" onMouseover="chgColor()">Dynamic HTML</font>

<SCRIPT Language="JavaScript">
function chgColor() {
    var el;
    el = document.all("MyTag");
    el.style.color = "red";
   }
</script>
上記の例は実行すると、マウスがテキストの上を通過したとき、 テキストの色が赤色になるというものです。
<font id="MyTag" style="color:blue" onMouseover="chgColor()">Dynamic HTML</H1>
idは、タグをコントロールするために必要な識別子です。 スクリプトはこの識別子を指定して、各要素を参照できます。
Dynamic HTMLオブジェクトモデルにおいて、documentオブジェクトのallコレクションは 全てのHTML要素を持っています。各コレクションについては、ID(NAME)で識別されます。 上記の例では、変数elを宣言して、 そのelに"MyTag"というID(NAME)を持ったHTML要素への参照を代入しています。
そしてそのelを使用して、"MyTag"のフォントの色を変更しています(style.colorが持つ)。 ちなみに、elを宣言しなくても、 document.all("MyTag").style.colorと直接指定することももちろん出来ます。
[Sample-No.1の実行例(下の文字に触れて下さい]
---Dynamic HTML


■Full Event Model

今までの、HTMLでは一部のタグのみ、一部のイベント(onMouseover,onMouseout,onClick...etc)が利用可能でした(ハイパーリンクタグに、onMouseover,onMouseoutなど)。 しかし、Dynamic HTMLオブジェクトモデルにおいては、サポートされている全てのタグに全てのイベント(Mouse event,Keybord Event,Focus...etc)が利用出来ます。 つまり、<FONT>にonMouseoverなどのイベントを記述できたり、 <SPAN>タグにonKeypressのイベントを記述出来るようになりました。
先程の、Sample-No.1を見てもらうと、<FONT>にonMouseoverの記述があることが分かると思います。 これは、<FONT></FONT>で囲まれたHTML要素にマウスが通過すると、 chgColor()が呼び出されます。


■ページの瞬間的更新

先までの例を見てもらえば、分かると思いますが、Dynamic HTMLでは ページのリロード(更新)を行わなくても、HTML要素の更新が可能です。 瞬間的に、文字の大きさや色を変えたり、HTMLの内容自体を書き変えたりなどが可能です。

■ページの書き換え

すでに決定されてる、ページ上の情報を瞬間的に書き換えるには、 innerHTMLや、outerHTMLなどを使用して行います。


<!-- Sample-No.2 --->
<font id="MyTag2" onClick="chgHTML()">Dynamic HTML</font>

<SCRIPT Language="JavaScript">
function chgHTML() {
    MyTag2.innerHTML = "New Title";
   }
</script>
上のスクリプトは、文字列をクリックすると、「Dynamic HTML」の文字を、 「New Title」に書き換えるプログラムです。
ここでは、分かりやすくするためにMyTag.innerHTMLと記述していますが、 先程書いたように、document.all("MyTag").innerHTMLと書いても、もちろん同じ意味です(こちらの方が正式(?))
この、MyTagオブジェクトはinnerHTMLというプロパティを持っています。 JavaScriptで val=MyTag.innerHTML とすると変数valに、"MyTag"の間の情報が代入されます。 (上の例では、変数に"Dynamic HTML"という文字列が入る) 上のサンプルスクリプトでは、そのinnerHTMLに文を挿入することで文を書き換えています。
[Sample-No.2の実行例(下の文字をクリックして下さい]
---Dynamic HTML

all collection
allコレクションは、ウェブページ上のHTML要素を全て持つコレクションです。 各タグへのアクセス、コントロールは、これを通して行います。

Script syntax
document.all.ID

style collection
styleコレクションは、指定HTML要素(タグ)のスタイル属性(つまりスタイルシート)への 参照を行います。
各タグのスタイルシートのコントロールなどは、これを通して行います。

Script syntax
document.all.ID.style


innerHTML
innerHTMLは、指定のHTML要素(タグの間)の内容を取得します。 また値(HTML文)を代入することにより、HTML文を書き換えることが出来ます。

Script syntax
ID.innerHTML = your message
Sample source
<div id="WORD1" onClick="chgHTML()">クリックすると、ここを書き換えます。</div>

<SCRIPT Language="JavaScript">
function chgHTML() {
  WORD1.innerHTML = "<b>書き換え終了。</b>";
  }
</SCRIPT>

outerHTML
outerHTMLは、指定のHTML要素(タグごと)の内容を取得します。 (innerHTMLと違い)outerHTMLは、タグごと取得することに注意して下さい。 また値(HTML文)を代入することにより、HTML文を書き換えることが出来ます。

Script syntax
ID.outerHTML = your message
Sample source
<div id="WORD1" onClick="chgHTML()">クリックすると、外側のタグごと書き換えます。</div>

<SCRIPT Language="JavaScript">
function chgHTML() {
  WORD1.outerHTML = "<div name='CHANGE'>タグごと書き換えました。</DIV>";
  }
</SCRIPT>

innerText
innerTextは、指定のHTML要素(タグの間)の内容を取得します。 innerHTMLと混同しやすいですが、innerTextはテキスト文として値を返します。 また値(テキスト)を代入することにより、テキストを書き換えることが出来ます。 ただし、この場合タグなどを間に書いても、そのまま(早い話<XMP>的?)にして表示されますので、注意して下さい。

Script syntax
ID.innerText = your message
Sample source
<div id="WORD1" onClick="chgText()">クリックすると、ここを書き換えます。</div>

<SCRIPT Language="JavaScript">
function chgText() {
  WORD1.innerText = "<b>タグを書くとこんな風に、そのまま表示されます</b>";
  }
</SCRIPT>

outerText
outerTextは、指定のHTML要素(タグごと)の内容を取得します。 outerHTMLと混同しやすいですが、outerTextはテキスト文として値を返します。 また値(テキスト)を代入することにより、テキストを書き換えることが出来ます。 ただし、この場合タグなどを間に書いても、そのまま(早い話<XMP>的?)にして表示されますので、注意して下さい。

Script syntax
ID.outerText = your message
Sample source
<div id="WORD1" onClick="chgText()">クリックすると、ここをタグごと書き換えます。</div>

<SCRIPT Language="JavaScript">
function chgText() {
  WORD1.outerText = "<b>タグを書くとこんな風に、そのまま表示されます</b>";
  }
</SCRIPT>

insertAdjacentText
指定のHTMLタグ要素内にテキストを追加します。テキスト文なのでタグなどはそのまま表示されます。 positionの指定により、文の前後などに追加することが出来ます。

Script syntax
ID.insertAdjacentText("position","insert string") postion::
Sample source
<div id="WORD1" onClick="insertText()">クリックすると、新しい文を追加します。</div>

<SCRIPT Language="JavaScript">
function insertText() {
  WORD1.insertAdjacentText("AfterEnd", "新しく文を追加しました。");
  }
</SCRIPT>

insertAdjacentHTML
指定のHTMLタグ要素内にHTML文を追加します。タグも有効です。 positionの指定により、文の前後などに追加することが出来ます。

Script syntax
ID.insertAdjacentHTML("position","insert string") postion::
Sample source
<div id="WORD1" onClick="insertHTML()">クリックすると、新しい文を追加します。</div>

<SCRIPT Language="JavaScript">
function insertHTML() {
  WORD1.insertAdjacentHTML("Beforebegin", "新しく文を追加しました。");
  }
</SCRIPT>

offsetWidth
指定要素の表示領域の横幅を返します。
またbodyオブジェクトにおいては、HTMLが表示できる画面横幅を返します。

Script syntax
Variable = ID.offsetWidth
Sample source
<span id="WORD1" onClick="tag_width()">クリックすると、このタグの横幅をステータスバーに表示します</span>

<SCRIPT Language="JavaScript">
function tag_width() {
  wid = WORD1.offsetWidth;
  window.status = "横幅:" +wid;
  }
</SCRIPT>

offsetHeight
指定要素の表示領域の高さ(縦幅)を返します。
またbodyオブジェクトにおいては、HTMLが表示できる画面縦幅を返します。

Script syntax
Variable = ID.offsetHeight
Sample source
<span id="WORD1" onClick="tag_height()">クリックすると、このタグの縦幅をステータスバーに表示します</span>

<SCRIPT Language="JavaScript">
function tag_height() {
  hei = WORD1.offsetHeight;
  window.status = "縦幅:" +hei;
  }
</SCRIPT>

offsetLeft
指定要素の座標x値を取得します。
つまり、タグの位置を取得できます。
ちなみに取得するのは、要素の左上の座標です。


Script syntax
Variable = ID.offsetTop
Sample source
<span id="WORD1" onClick="tag_left()">クリックすると現在の座標xをステータスバーに表示します</span>

<SCRIPT Language="JavaScript">
function tag_left() {
  left = WORD1.offsetLeft;
  window.status = "座標x:" +left;
  }
</SCRIPT>

offsetTop
指定要素のページ上からの座標y値を取得します。
つまり、タグの位置を取得できます。
ちなみに取得するのは、要素の左上の座標です。


Script syntax
Variable = ID.offsetTop
Sample source
<span id="WORD1" onClick="tag_top()">クリックすると現在の座標yをステータスバーに表示します</span>

<SCRIPT Language="JavaScript">
function tag_top() {
  top = WORD1.offsetTop;
  window.status = "座標y:" +top;
  }
</SCRIPT>

posLeft
値を代入することにより指定要素を座標xに移動します。


Script syntax
Variable = ID.style.posLeft
Sample source
<span id="WORD1" onClick="tag_posleft()" style="position:absolute">
クリックすると現在の座標xを250に移動します。</span>

<SCRIPT Language="JavaScript">
function tag_posleft() {
  WORD1.style.posLeft = 250;
  }
</SCRIPT>

posTop
値を代入することにより指定要素を座標yに移動します。


Script syntax
Variable = ID.style.posTop
Sample source
<span id="WORD1" onClick="tag_postop()" style="position:absolute">
クリックすると現在の座標yを250に移動します。</span>

<SCRIPT Language="JavaScript">
function tag_postop() {
  WORD1.style.posTop = 250;
  }
</SCRIPT>


event.srcElement
イベントが発生したとき、発生時マウスがどのHTML要素上にいるかを返します。
例えば、ID="srcEle"という画像の上でイベントが発生した場合、srcElementには"srcEle"の情報(タグの名前など)が入ります。

Script syntax
Variable = event.srcElement;
Sample source
<img width=200 height=200 id="img1">
<br><br>
<img width=200 height=200 id="img2">

<SCRIPT Language="JavaScript">
//現在マウスはどのタグの上にいるか?
function src_element() {
  el = event.srcElement;
  window.status = el.tagName;
 }

document.onmousemove = src_element;
</SCRIPT>

event.fromElement
イベントが発生したとき、発生時マウスがどのHTML要素上から来たのか?を返します。
例えば、ID="srcEle"という画像の上でイベントが発生した場合、 srcElementには"srcEle"に入る前にいたHTML要素の情報(タグの名前など)が入ります。

Script syntax
Variable = event.fromElement;
Sample source
<img width=200 height=200 id="img1">
<br><br>
<img width=200 height=200 id="img2">

<SCRIPT Language="JavaScript">
//現在マウスはどのタグの上かから来たのか?
function src_element() {
  el = event.fromElement;
  if(el != null) {
    window.status = el.tagName;
   }
 }

document.onmouseover = src_element;
</SCRIPT>

event.returnValue
ブラウザのデフォルト動作をキャンセルする事ができます。

Script syntax
event.returnValue = false | true
Sample source
<a href="http://www.yahoo.co.jp" onClick="returnVal()">Go yahoo!</a>

<SCRIPT Language="JavaScript">
//リンクを無効にする
function returnVal() {
  event.returnValue = false;
 }
</SCRIPT>

event.cancelBubble
それ以後のイベント処理を無効にします。

Script syntax
event.cancelBubble = true | false
Sample source
<div onClick="alert('普通このアラートは表示されません')">
<span onClick="cancel_event()">Click Me</span>
</div>

<SCRIPT Language="JavaScript">
//以後のイベントをキャンセルする
function cancel_event() {
  alert("以後のイベントをキャンセルします");
  event.cancelBubble = true;
  //falseにすれば以降のイベントも普通に行われる。
 }
</SCRIPT>
Current link
リンクに触れると、リンクの色を変更します。
というか、リンク以外でも、IE4.0の場合ハイパーリンクタグ以外にも、 onMouseoverなどが使えるため、変更可能です。
[ Top | Top2 | Top3 | Top4 | Top5 ]

SOURCE
<HTML>
<HEAD>
<TITLE></TITLE>


</HEAD>


<BODY>

<a href="http://www02.so-net.or.jp/~kg-group/">
<!--this.style.color='red'"のトコは変化する色を指定して下さい。-->
<span onMouseover="this.style.color='red'" onMouseout="this.style.color=''">
JavaC
</span>
</a>


</BODY>
</HTML>

CUSTOM SCRIPT

■スクリプトを文字色ではなく、背景色に適用する
タグの、
  onMouseover="this.style.color='red'" onMouseout="this.style.color=''"
の中の、
  this.style.color
の部分をそれぞれ、
  this.style.background
と変える。
Tree Menu
ツリー上のメニュー表示です。フレームなどに良いかもしれません。
下のMenuのとこをクリックして下さい。


[Start Pages Link Menu]

SOURCE
<HTML>
<HEAD>
<TITLE></TITLE>


<SCRIPT Language="JavaScript">
<!--
function treeMenu(id) {
 var disp = document.all(id).style.display;

 if(disp != "none" || disp == "") {
   document.all(id).style.display = "none";
  }
 else {
   document.all(id).style.display = "block";
  }
}
//-->
</SCRIPT>


</HEAD>


<BODY>


<dl>
<dd><span style="cursor:hand" onClick="treeMenu('menu')" class="green">:Start Pages Link Menu</span>
	<ul style="display:none" id="menu">
	    <li><span style="cursor:hand" onClick="treeMenu('menu-search')" class="green">Search Engine</span>
			<ul id="menu-search" style="display:none">
			    <li><a href="http://www.yahoo.co.jp">Yahoo! japan</a>
			    <li><a href="http://www.goo.ne.jp/">Goo</a>
			</ul>
	    <li><span style="cursor:hand" onClick="treeMenu('menu-vender')" class="green">Vender</span>
			<ul id="menu-vender" style="display:none">
		    	    <li><a href="http://www.microsoft.com/japan/">Microsoft</a>
			    <li><a href="http://www.apple.co.jp/">Apple</a>
			</ul>
	</ul>
</dl>



</BODY>
</HTML>

Display contents
ボタンを押すことによって、IDを付けた指定のタグの中の情報の表示非表示を切り替えます。
下の矢印をクリックしてください。
What's Dynamic HTML?

Merit & Demerit
SOURCE
<HTML>
<HEAD>
<TITLE></TITLE>


<SCRIPT Language="JavaScript">
<!--
function show_hide(id) {
 disp = document.all(id).style.display;
  if(disp == "block")
    document.all(id).style.display = "none";
  else
    document.all(id).style.display = "block";
 }
//-->
</SCRIPT>


</HEAD>


<BODY>


<img src="cursor_down.gif" width="34" height="28" align=top
 style="cursor:hand" onClick="show_hide('dh1')"><!--IDを記述-->

<font size=5 style="font-size:20pt;font-family:Times New Roman">What's Dynamic HTML?</font>

<blockquote id="dh1" style="display:none">
この間のメッセージの切り替えを行います。
</blockquote>


<br>



<img src="cursor_down.gif" width="34" height="28" align=top
 style="cursor:hand" onClick="show_hide('dh2')"><!--IDを記述-->

<font size=5 style="font-size:20pt;font-family:Times New Roman">Merit Demerit?</font>

<blockquote id="dh2" style="display:none">
この間のメッセージの切り替えを行います。
</blockquote>


</BODY>
</HTML>

Link information
リンクに触れると、リンク先のメッセージを表示します。
Message:
[ Internet Start Pages | Microsoft | Netscape ]
SOURCE
<HTML>
<HEAD>
<TITLE></TITLE>

</HEAD>


<BODY>


Message:<span id="link_msg_show"></span>

<a href="http://www02.so-net.or.jp/~kg-group/">
<span onMouseover="link_msg_show.innerHTML='Internet Start Pages に行きます'" onMouseout="link_msg_show.innerHTML=''">
JavaC
</span>
</a>



</BODY>
</HTML>

Link information -2-
リンクに触れると、ガイドが現れてリンク先の情報について教えてくれます。
JavaCの表紙で使っているアレですね。アレ。
Internet Start Pages
Netscape
Microsoft
Yahoo!japan

SOURCE
<HTML>
<HEAD>
<TITLE></TITLE>


<SCRIPT Language="JavaScript">
<!--
if(navigator.appVersion.charAt(0)>=4 && (navigator.appVersion).indexOf("MSIE")!=-1) isIE4 = true;
else  isIE4 = false;

//イベントオブジェクト・ダミー関数&エラー回避
function dummy_event() {
 this.x = 0;
 this.y = 0;
	}
if(navigator.appVersion.charAt(0) <=3) {
  event = new dummy_event();
  }

//********************************************
//*****マウスオーバー処理&マウスアウト処理***
//********************************************

function showDynamicMessage_over(x,y,num) {
 if(isIE4) {
   document.all.MSG.innerHTML  = showDynamicMessage.msg[num];
   document.all.MSG.style.left = x+showDynamicMessage.msg_x1;;
   document.all.MSG.style.top  = y+showDynamicMessage.msg_y1;;
   document.all.HOST.style.left= x+showDynamicMessage.host_x1;
   document.all.HOST.style.top = y+showDynamicMessage.host_y1;
   document.all.MSG.style.display = "block"; document.all.HOST.style.display = "block";
   }
 }

function showDynamicMessage_out() {
 if(isIE4) {
   document.all.MSG.style.display = "none";
   document.all.HOST.style.display = "none";
   }
 }


//********************************************
//*****ユーザー設定***************************
//********************************************

function set_showDynamicMessage() {
  this.host_x1  = 50;  //イベント発生場所からのホストの座標x。
  this.host_y1  = -70; //イベント発生場所からのホストの座標y。
  this.msg_x1   = 80;  //イベント発生場所からのメッセージの座標x。
  this.msg_y1   = -10; //イベント発生場所からのメッセージの座標y。

  this.msg = new Array();
  this.msg[0] = "<b><font color=green>Internet Start Pagesです。<br>最近Maru's Chatで落ちやすいと評判です。</font></b>";
  this.msg[1] = "<b><font color=green>ネットスケープのページです。<br>Netscape Communicatorのダウンロードなどが出来ます。</font></b>";
  this.msg[2] = "<b><font color=green>マイクロソフトのページです。<br>Internet Explorer4.0のダウンロードなどが出来ます。</font></b>";
  this.msg[3] = "<b><font color=green>Yahoo!japanのページです。<br>検索ならやっぱここでしょう。</font></b>";

  //表示するメッセージの設定。
  //以下、this.msg[5]=""; this.msg[6]="";......と続けていけます。
 }


if(isIE4)  {
  showDynamicMessage = new set_showDynamicMessage();

  //↓ホスト画像のタグ。お好きな画像に書き換えて下さい。*但し"ID"は変更しないこと。
  document.write('<img src="girl.gif" alt="JavaC HOST" id="HOST" style="position:absolute;display:none;top:0;left:0">');
  document.write('<span id="MSG" style="position:absolute;display:none;background:#c7ffdb;width:250;top:0;left:0;font-size:10pt"></span>');
 }

//-->
</SCRIPT>


</HEAD>


<BODY>


<a href="http://www02.so-net.or.jp/~kg-group/" onMouseOver="showDynamicMessage_over(event.x,event.y,0)" onMouseout="showDynamicMessage_out()">
Internet Start Pages
</a><br>

<!--
onMouseOver="showDynamicMessage_over(event.x,event.y,0)"
の"0"のとこは、スクリプトタグの中で設定した、this.msg[0]を呼び出すという意味です。
-->


<a href="http://home.netscape.com/" onMouseOver="showDynamicMessage_over(event.x,event.y,1)" onMouseout="showDynamicMessage_out()">
Netscape
</a><br>

<a href="http://www.microsoft.com/japan/" onMouseOver="showDynamicMessage_over(event.x,event.y,2)" onMouseout="showDynamicMessage_out()">
Microsoft
</a><br>

<a href="http://www.yahoo.co.jp/" onMouseOver="showDynamicMessage_over(event.x,event.y,3)" onMouseout="showDynamicMessage_out()">
Yahoo!japan
</a><br>

<a href="http://www.goo.ne.jp/" onMouseOver="showDynamicMessage_over(event.x,event.y,4)" onMouseout="showDynamicMessage_out()">
Goo
</a><br>
</center>


</BODY>
</HTML>

Next Stage...Go