ページに入るとすぐに「ようこそ」のメッセージウインドウが開きます。これは<body onLoad="winOpen()">でもできるのですが、ここでは、<script>タグ内に直接winOpen()と記述しています。onLoadはページが全部読み込まれてから実行されるのに対し、この方法だと、読み込み完了を待たずに「ようこそ」のメッセージウインドウを開くことができます。ウインドウ内にクローズボタンがありますがもしこれで閉じなくても、ページを出る時には自動的に閉じるようになっています。
応用 :
ウインドウについて詳しくはwindow.openの参照をご覧ください。
参照 : onerror, function, 変数, window.open, opener, document.write(), fontcolor, self.close(), document.close(),
<html> <head> <title></title> </head> <script language="JavaScript"> <!-- var winfl = 0 //ウインドウ開閉フラグ 0でclose 1でopen //現在のpathを求めてBASE FREF(画像pathに使う)を指定します var URL = window.location.href var pathlength = URL.lastIndexOf('\/') var path = URL.substring(0,pathlength) var basehref = "<BASE HREF='"+path+"/'>" //注意IE3.0は上の式ではpathを取り出せないのでBASE HREFを記入してください。 //サブウインドウオープン function winOpen(){ winfl = 1 win14 = window.open('','winname','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=300,height=370') win14.opener=self; var winhtml = '<html>' winhtml += '<body bgcolor="00AB08">' winhtml += basehref winhtml += '<form>' winhtml += ' <input type="button" value=" Close " onClick="opener.winfl=0;window.close()">' winhtml += ' このWindowを閉じます'.fontcolor("56789") winhtml += '</form>' winhtml += '一応このウインドウはページから出る時も自動で閉じます<p>' winhtml += ' <table border=4 width=18%><tr><td>' winhtml += ' </td></tr></table>' winhtml += ' <font size=8 face="Osaka,MS Pゴシック" color="#ffffff"><b>W</b></font>' winhtml += ' <font size=3 face="Osaka,MS Pゴシック" color="#ffffff">ellcome to</font>' winhtml += ' <center>' winhtml += ' <hr>' winhtml += ' <font size=8 face="Osaka,MS Pゴシック" color="#000000"><b>た</b></font>' winhtml += ' <img src="TAKU3.GIF">' winhtml += ' <font size=8 face="Osaka,MS Pゴシック" color="red"><b>く</b></font>' winhtml += ' <font size=5 face="Osaka,MS Pゴシック" color="#ffffff"><b>ちゃん</b></font>' winhtml += ' <font size=8 face="Osaka,MS Pゴシック" color="FFFF00"><b>7</b></font>さいのページ' winhtml += ' <TABLE border=1 width=100%><tr><td>' winhtml += ' </td></tr></table>' winhtml += ' </center>' winhtml += ' </body>' winhtml += ' </html>' win14.document.write(winhtml) win14.document.close() //NN3.0~ならサブウィンドウが開くときフォーカス(手前に)する。 if(navigator.appVersion.charAt(0)>=3){win14.focus()} } winOpen() //winOpen()を実行する //--> </script> <!--ページを出る時サブウインドウwin14が開いていれば閉じます--> <body onUnload="if(winfl==1){win14.close();winfl=0}"> </body> </html>
window.openに関する説明はwindow.openをご覧くださいwindow.onerror=nullとするとNN3.0~なら元ウインドウ内にスクリプトエラーがあってもエラーダイアログを出力しません。デバック時は//win14.onerror=nullとしておきます
win14.opener=selfでサブウインドウwin14を開いた元ウインドウはselfウインドウだという関係が指定されます。この場合のselfはtopに置き換えても同じです。NN3.0ではこれが無くてもopenerは機能します
NN3.0~ならwin14.onerror=nullでサブウインドウwin14内でのスクリプトエラーがでてもいちいちダイアログを表示しません
var winhtml = '<html>'で、変数winhtmlへ'<html>'という文字列を格納します。そして引き続きwinhtml += '<body bgcolor="#B8860B">'と書くことで変数winhtmlの中へ追加されて、winhtmlは'<html><body bgcolor="#B8860B">'を意味するようになります
win14.document.write()でサブウインドウwin14にHTMLを書き出ています
'この目次を閉じます'.fontcolor("#56789")は'この目次を閉じます'という文字列を"#56789"の色にします
win14.document.close()はサブウインドウwin14内への文字などの書き出しを終了するという意味です。これを忘れると文字が欠けることがあります
onUnload="命令文"でページを出るときに"命令文"を実行するという意味です
if(winfl==1){win14.close();winfl=0}はwinfl(サブウインドウの開閉フラグ)が1の時、つまりwin14が開いているとcloseしwinflを0にするという意味です。こういうチェックをせずに、もし、開いていないウインドウに何かしようとするとエラーになります
| CONTENTS
| PART1 これだけ知っていれば大丈夫
| PART2 サンプルの紹介
| PART3 JavaScript言語仕様
| PART4 JavaScriptクイック書式一覧
| PART5 JavaScriptサイト
| オンラインサポートページ(回線をつないでください)