D14 ページに入ったとたんに「ようこそ」ウィンドウが開いて、出る時に閉じる

ページに入るとすぐに「ようこそ」のメッセージウインドウが開きます。これは<body onLoad="winOpen()">でもできるのですが、ここでは、<script>タグ内に直接winOpen()と記述しています。onLoadはページが全部読み込まれてから実行されるのに対し、この方法だと、読み込み完了を待たずに「ようこそ」のメッセージウインドウを開くことができます。ウインドウ内にクローズボタンがありますがもしこれで閉じなくても、ページを出る時には自動的に閉じるようになっています。

応用 :
ウインドウについて詳しくはwindow.openの参照をご覧ください。
参照 : onerror, function, 変数, window.open, opener, document.write(), fontcolor, self.close(), document.close(),

Sample



Source
ソース
(コピーしてお使いください)
<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
| CONTENTS
| PART1 これだけ知っていれば大丈夫
| PART2 サンプルの紹介
| PART3 JavaScript言語仕様
| PART4 JavaScriptクイック書式一覧
| PART5 JavaScriptサイト
| オンラインサポートページ(回線をつないでください)


Maintained by
tato@fureai.or.jp works1997 Toshirou Takahashi