2001年3月8日更新
JAVAスプリクトの学習用に作成

ホタルの標準機能+αを忘れない為のページです。ソースを表示させて挿入位置等を確認して下さい。
⇒以降はコメントです。水色文字で指定動作をすると記入内容になります。
ブラウザのバージョンにより正常に動作しないことがあります。
JAVAスプリクトに対応していない方の為に下記のようにするといいらしい。
<SCRIPT LANGUAGE="JavaScript">
<!--
宣言文
//-->
</SCRIPT>
宣言文は下記のようになります。関数名はユニーク(重複しない,唯一)でないとだめです。
function 関数名(変数){実行内容;}
function{}内のJAVAスプリクトは呼び出されるまで処理されませんが,
function{}の外側のJAVAスプリクトは表示を始めると同時に処理されます。
ホタルではフォームのエレメント(チェックボックス等)にNAMEを設定するとIDも設定されます。
IDと関数名を同じにするとJAVAスプリクトが処理されない。
ホタルの機能を使用してJAVAスプリクトを編集するとfunction{}の外側のJAVAスプリクトが削除されます。
 ステータスバーのJAVAスプリクトではmsg9等が削除されました。

クリック時に警告メッセージ ホタルの機能
⇒宣言文
function dBsftWarningg(msg) {
if (msg != "") alert(msg);}⇒表示文字があれば表示文字で警告メッセージ(alert)を表示
⇒呼出文
<SPAN onClick="dBsftWarning('表示文字');"><SPAN STYLE="CURSOR:hand">ページ文字</SPAN></SPAN><BR>
⇒onClickがクリックのキーワード onClickで指定した関数が処理されます
⇒<SPAN STYLE="CURSOR:hand"></SPAN>でカーソルを手の形に変更

ダブルクリック時に確認メッセージ ホタルの機能
⇒宣言文
function dBsftCertification(msg, urlY, urlN) {
if (msg != "") {⇒表示文字があれば
if (confirm(msg)){⇒表示文字で確認メッセージ(confirm)を表示
if ( urlY != '') window.location = urlY;⇒ok時okのURL文字があればokのURLを表示
}else{⇒キャンセル時
if ( urlN != '') window.location = urlN;}}}⇒キャンセルのURL文字があればキャンセルのURLを表示
⇒呼出文
<SPAN onDblClick="dBsftCertification('表示文字','okのURL文字','キャンセルのURL文字');">ページ文字</SPAN><BR>
⇒onDblClickがダブルクリックのキーワード onDblClickで指定した関数が処理されます

動作状況はステータスバーを見て下さい。パクリ
⇒宣言文
msg9="表示文字";jikan9=0;⇒タイマの変数を初期化
function sta_str_rol(){⇒宣言
status=msg9;⇒ステータスバー文字を設定
msg9=msg9.substring(1,msg9.length)+msg9.substring(0,1);⇒表示文字の先頭文字を表示文字の末尾に移動
clearTimeout(jikan9);⇒指定タイマの解除
jikan9=setTimeout("sta_str_rol()",1000);}⇒指定関数を指定時間後に実行(指定関数,指定時間はミリ秒)
⇒呼出文
<BODY onLoad="sta_str_rol()">⇒onLoadはページの表示が完了のキーワード

チェックすると画像が表示されます。自作? 表示予定位置
⇒宣言文
blank_image8="最初の画像ファイル名";⇒無いとが表示されるので透明の画像を設定
img_chn_n8=画像の種類マイナス壱;⇒クリックする度に表示する画像を変える為に用意した種類
img_chn_t8=new Array(一つ目の表示切替時間,二つ目の表示切替時間);⇒画像の種類だけ必要
img_chn_f8=new Array(一つ目のコマ数マイナス壱,二つ目のコマ数マイナス壱);⇒一つの画像の種類に用意したファイル数
img_chn_s8=new Array("一つ目の配列の変数名","二つ目の配列の変数名");⇒画像の種類だけ必要
一つ目の配列の変数名=new Array();⇒一つ目の配列の変数を宣言
一つ目の配列の変数名[0]="一つ目の画像の種類の最初のファイル名";
一つ目の配列の変数名[1]="一つ目の画像の種類の二番目のファイル名";
⇒一つ目の画像の種類に用意したファイルの数だけ上記の一行を繰り返す 括弧内の値を一つずつ増やす
二つ目の配列の変数名=new Array();⇒二つ目の配列の変数を宣言
二つ目の配列の変数名[0]="二つ目の画像の種類の最初のファイル名";
二つ目の配列の変数名[1]="二つ目の画像の種類の二番目のファイル名";
⇒二つ目の画像の種類に用意したファイルの数だけ上記の一行を繰り返す 括弧内の値を一つずつ増やす
⇒画像の種類だけ上記のnew Array()からの行を繰り返す
img_chn_j8=0;⇒タイマの変数を初期化
img_chn_k8_0=0;⇒画像の種類用のカウンタを初期化
img_chn_k8_1=0;⇒コマ数のカウンタを初期化
function image_change_func(){⇒宣言
clearTimeout(img_chn_j8);⇒指定タイマの解除
if(document.チェックボックスのフォーム名.チェックボックス名.checked==false){
⇒チェックボックスのチェックが消えた時
document.画像名.src=blank_image8;⇒表示画像のファイル名を初期画像に設定
img_chn_k8_1=0;⇒コマ数のカウンタを初期化
if(img_chn_k8_0<img_chn_n8){⇒画像の種類用のカウンタが画像の種類未満時
img_chn_k8_0++;⇒画像の種類用のカウンタを加算
}else{⇒画像の種類用のカウンタが画像の種類以上時
img_chn_k8_0=0;}⇒画像の種類用のカウンタを初期化
return;}⇒この関数から抜ける つまり処理終了
document.画像名.src=eval(img_chn_s8[img_chn_k8_0])[img_chn_k8_1];
⇒表示画像のファイル名を設定 evalにより文字を数式等に変更 img_chn_s8[img_chn_k8_0]により画像の種類を設定
if(img_chn_k8_1<img_chn_f8[img_chn_k8_0]){⇒コマ数のカウンタがコマ数未満時
img_chn_k8_1++;⇒コマ数のカウンタを加算
}else{⇒コマ数のカウンタがコマ数以上時
img_chn_k8_1=0;}⇒コマ数のカウンタを初期化
img_chn_j8=setTimeout("image_change_func()",img_chn_t8[img_chn_k8_0]);}
⇒指定関数を指定時間後に実行(指定関数,指定時間はミリ秒)
⇒呼出文
<FORM NAME="チェックボックスのフォーム名">⇒チェックボックスを使用するにはフォームが必要
<P><INPUT TYPE=CHECKBOX NAME="チェックボックス名" onClick="image_change_func();">
⇒onClickがクリックのキーワード onClickで指定した関数が処理されます
⇒NAMEを設定しないとチェックボックスの値の参照,設定が出来ません
<IMG SRC="最初の画像ファイル名" NAME="画像名">⇒この画像の表示が変わります
</P></FORM>
⇒余談
function reload_setup(){⇒onLoadで呼び出されます
document.チェックボックスのフォーム名.チェックボックス名.checked=false;}
⇒チェックボックスのチェックを消す
onLoad="reload_setup()"⇒onLoadはページの表示が完了のキーワード
⇒更新すると画像は表示されなくなるが,チェックが消えない為に必要になります
⇒表示が完了前に関数を呼び出すとエラーとなる為にonLoadで関数を呼び出す

項目を選択するとパスワード入力になります。自作?

⇒宣言文
<SCRIPT LANGUAGE="JavaScript" src="外部JavaScriptファイル名"></SCRIPT>
⇒別ファイルにしたJavaScriptを読み込ます為に上記のように書きます
⇒関数の宣言用のタグにsrc=を追加するとエラーとなります 上記の一行は単独で書き込みます
⇒ブラウザで表示させる為に拡張子をtxtにしていますが,JavaScriptの拡張子はjsです
function select_change_password(sel_val){⇒プルダウン式メニューを変更時に呼び出されます
switch(sel_val){⇒switchは括弧内の値により処理を分岐するキーワード
case "dialog":⇒caseはswitchの括弧内の値がcase右値の時に以下を処理するキーワード
⇒caseでは命令の区切りの;で区切るのではなく:です 注意して下さい
in_txt=prompt("表示文字","値の初期値");⇒promptは入力用ダイアログのキーワード
⇒in_txtに入力した値が入ります
if(in_txt==null) break;⇒キャンセル時switch{}の外に抜けます
⇒キャンセルするとpromptの値はnullとなります breakはswitch{}の外に抜けるキーワード
if(in_txt!="パスワード"){⇒入力値がパスワード以外の時
alert("パスワードが一致しませんでした。");⇒メッセージを表示
select_change_password(sel_val);⇒この関数を呼び出しています つまり入力用ダイアログを再表示
return;}⇒この関数から抜ける つまり処理終了 実際は処理されません
location="表示URL文字";⇒locationは現在のページから指定ページに移動するキーワード
⇒入力値がパスワードと一致すると処理されます
break;⇒switch{}の外に抜ける 無いと以下も処理され,ウィンドウが表示されます
case "window":⇒switchの括弧内の値が"window"の時に以下を処理
win_pas=window.open("表示URL文字","","width=,height=高さ");
⇒window.openは新しいウィンドウを表示するキーワード 新しいウィンドウで指定URLを表示します
break;⇒switch{}の外に抜ける
case "source":⇒switchの括弧内の値が"source"の時に以下を処理
window.open("password_script.txt");⇒新しいウィンドウで指定の物を表示
break;}⇒switch{}の外に抜ける 必要ないですが後々のことを考えて
document.form_image_change.password_script.value="dummy";}
⇒プルダウン式メニューを最初値(dummy)に表示変更
⇒表示ウィンドウ内の宣言文
function sel_pas_win_ok(ok_pas){⇒表示ウィンドウのOKボタンを押すと呼び出されます
if(ok_pas!="パスワード"){⇒入力値がパスワード以外の時
alert("パスワードが一致しませんでした。");⇒メッセージを表示
return;}⇒この関数から抜ける つまり処理終了 表示ウィンドウは閉じていません
opener.window.location="表示URL文字";
⇒openerは呼出元のウィンドウをを示すキーワード つまりこのウィンドウを指定URLに移動します
window.close();}⇒表示ウィンドウを閉じます
function sel_pas_win_can(){⇒表示ウィンドウのキャンセルボタンを押すと呼び出されます
window.close();}⇒表示ウィンドウを閉じます
function sel_pas_win_foc(){⇒onLoadで呼び出されます
sel_pas_win_pas.focus();}⇒sel_pas_win_pasは一行入力フィールドの名前
⇒focus()により一行入力フィールドを選択します すぐに入力できる状態にします
⇒完全に表示されていないonLoad以前にfocus()を処理するとエラーとなる可能性があります
⇒表示ウィンドウ内の呼出文
<BODY onLoad="sel_pas_win_foc()">⇒onLoadはこの位置に書き込みます
<TABLE><TR><TD><BR></TD><TD>⇒表示を揃える為に表を使用しています フォームは使用していません
<INPUT TYPE=SUBMIT VALUE="ボタンの表示文字" onClick="sel_pas_win_ok(sel_pas_win_pas.value);" TABINDEX=2></TD>
⇒TYPE=SUBMITでボタンが作成されます ボタンにはBUTTONとIMAGEとRESETがあります
⇒SUBMITを使用するとリターンキーを押すことがSUBMITのボタンをクリックしたことになります
⇒onClickがクリックのキーワード onClickで指定した関数が処理されます(OK)
⇒sel_pas_win_pasは一行入力フィールドのNAMEです
⇒sel_pas_win_pas.valueで一行入力フィールドの選択した値を参照できます
⇒TABINDEXを設定するとTABキーを推す度にTABINDEXで設定した番号順に選択されて行きます
</TR><TR><TD>パスワードを入力して下さい。</TD><TD><BR></TD></TR><TR><TD> 一致するとgooへ移動します。</TD><TD>
<INPUT TYPE=RESET VALUE="ボタンの表示文字" onClick="sel_pas_win_can();" TABINDEX=3></TD></TR><TR><TD>
⇒TYPE=RESETでボタンが作成されます
⇒RESETを使用するとESCキーを押すことがRESETのボタンをクリックしたことになります
⇒onClickがクリックのキーワード onClickで指定した関数が処理されます(キャンセル)
<INPUT TYPE=PASSWORD NAME="sel_pas_win_pas" SIZE=30 ID="sel_pas_win_pas" TABINDEX=1></TD><TD><BR></TD></TR></TABLE>
⇒TYPE=PASSWORDで一行入力フィールドが作成されます PASSWORDは入力した値が*と表示されます
⇒NAMEを設定しないと一行入力フィールドの値の参照,設定が出来ません
⇒TYPE=TEXTで普通の一行入力フィールドが作成されます
⇒呼出文
<FORM NAME="フォーム名"><P>⇒プルダウン式メニューを使用するにはフォームが必要
⇒フォームはチェックボックスと併用しています
<SELECT NAME="password_script" ID="password_script" onChange="select_change_password(form_image_change.password_script.value);">
⇒SELECTでプルダウン式メニューが作成されます
⇒NAMEを設定しないとプルダウン式メニューの値の参照,設定が出来ません
⇒onChangeが項目が変更された時のキーワード onChangeで指定した関数が処理されます
⇒form_image_change.password_script.valueプルダウン式メニューの選択した項目を参照できます
⇒form_image_changeはフォーム名でpassword_scriptはプルダウン式メニュー名です
<OPTION VALUE="dummy">選択して下さい⇒OPTIONでプルダウン式メニューの項目を設定します
⇒VALUEで設定した値はvalueで参照されます
⇒valueの他にselectedIndexでも選択項目が分かります。零からの項目順の番号となります dummyは零
⇒最初に表示している項目を選択してもonChangeとならないのでダミーを設定します
⇒必要な数だけOPTIONを繰り返します
<OPTION VALUE="dialog">ダイアログ⇒selectedIndexの値は壱
<OPTION VALUE="window">ウィンドウ⇒selectedIndexの値は2
<OPTION VALUE="source">ソースの表示</SELECT><BR></P></FORM>⇒selectedIndexの値は3
⇒余談
⇒window.openの幅高さに以下のオプションを追加すると表示されます テストしていません
⇒ アドレスバーはlocation=yes,ステータスバーはstatus=yes,ツールバーはdirectories=yes,
⇒ スクロールバーはscrollbars=yes,ウィンドウズサイズ可変はresizable=yes,
⇒ メニューバーはmenubar=yes,ツールバーはtoolbar=yes,
⇒ screenX=左上隅からの横位置,left=横位置、screenY=縦位置,top=縦位置
⇒htmlファイルを作成しなくてもJavaScriptのみでwebページは作成できますが,
⇒ document.writeを追加する為に,ファイルが読み難くなります。作成時にはわかっていませんでした
⇒ document.writeにより,タグ・JavaScriptも書きこめます。JavaScriptのタグの書きこみを忘れないように
⇒ document.write("書込み文");内ではタグ等をすべて文字扱いとする為に " になる所を ' にします
⇒ document.write('書込み文');内ではタグ等をすべて文字扱いとする為に ' になる所を " にします
⇒ 上記はどちらを使用しても良いようですが,文字扱いが変数とならない簡単な回避策です
⇒外部JavaScriptを使用すると表示→ソースではパスワードのソースは表示されませんが,
⇒ ソースの中に指定しているので外部JavaScriptファイルを直接指定して表示できてしまう
⇒ 外部JavaScriptファイルのパーミッション(アクセス権)で読み込み出来ないようにすると,
⇒ 表示させないように出来ますが,JavaScriptも読み込み出来なくなり,JavaScriptを実行しない
⇒ セキュリティを重んじる場合はJavaApplet等を使用しましょう
⇒FTPのソフト等でパーミッションを変更してもすぐに反映されません
⇒ 時間を置いて(5分ほどかな サーバーしだい)パーミッションの値を良く確認しましょう
⇒ホタルのプレビューでは表示時に外部JavaScriptを読み込むので,
⇒ プレビューのままで外部JavaScriptを変更しても反映されません
⇒ プレビューを抜けて,プレビューを再度選択して,外部JavaScriptの変更を反映させましょう

 更新すると3パターン? パクリ
⇒宣言文
map_cng_n=3;⇒画像数を設定
map_cng_n=Math.ceil(Math.random()*map_cng_n);⇒表示する画像を設定
⇒Math.random()で零から壱の乱数を発生 Math.ceilで整数に切り上げ よって,零から画像数の整数になります
map_cng_t=new Array();⇒マップの為の配列を準備
switch(map_cng_n){⇒switchは括弧内の値により処理を分岐するキーワード
case 1:⇒switchの括弧内の値が1の時に以下を処理(壱つ目の画像の設定)
map_cng_i="pictures/yahoo_goo_pi-po.gif";⇒画像ファイル名を設定
map_cng_a="TOP";⇒行に対する画像の位置を設定 TOP,MIDDLE,BOTTOM等があります
map_cng_k=3;⇒マップ数を設定
map_cng_t[0]='<AREA SHAPE=RECT COORDS="14,83,101,104" HREF="http://de.yahoo.com/" ALT="Yahooへ">';
map_cng_t[1]='<AREA SHAPE=RECT COORDS="109,83,199,104" HREF="http://www.goo.ne.jp/" ALT="gooへ">';
map_cng_t[2]='<AREA SHAPE=RECT COORDS="201,83,293,104" HREF="http://www.keishicho.metro.tokyo.jp/" ALT="ピーポくんへ">';
⇒<AREA SHAPE=RECT COORDS="左上X,左上Y,右下X,右下Y" HREF="URL文字" ALT="代替文字">
⇒上記の一行を必要な数だけ羅列 この場合は計3行の<AREA・・・>
⇒SHAPE=RECTは四角の領域のキーワード COORDS=は画像に対にての領域範囲 画像左上が零,零
⇒マップ領域でクリックすると指定URLに移動します
⇒配列を使用しているので括弧内の値を一つずつ増やす 零から始める
break;⇒switch{}の外に抜ける 無いと以下も処理され,defaultの画像しか表示されない
case 2:⇒switchの括弧内の値が2の時に以下を処理(二つ目の画像の設定)
map_cng_i="pictures/scroll_msg.gif";⇒画像ファイル名を設定
map_cng_a="BOTTOM";⇒行に対する画像の位置を設定
map_cng_k=2;⇒マップ数を設定
map_cng_t[0]='<AREA SHAPE=RECT COORDS="58,83,147,104" onClick="fun_map_cng(2);">';
map_cng_t[1]='<AREA SHAPE=RECT COORDS="152,81,242,104" onClick="fun_map_cng(3);">';
⇒マップが二ヶ所だから二行 onClickがクリックのキーワード onClickで指定した関数が処理されます(関数呼出)
break;⇒switch{}の外に抜ける 無いと以下も処理され,defaultの画像しか表示されない
default:⇒caseで指定された値以外の時に以下を処理(三つ目の画像の設定)
map_cng_i="pictures/close_msg.gif";⇒画像ファイル名を設定
map_cng_a="MIDDLE";⇒行に対する画像の位置を設定
map_cng_k=1;⇒マップ数を設定
map_cng_t[0]='<AREA SHAPE=RECT COORDS="111,78,197,97" onClick="fun_map_cng(1);">';}
⇒マップが一ヶ所だから一行 onClickがクリックのキーワード onClickで指定した関数が処理されます(関数呼出)
document.write('<MAP NAME="yahoo_goo_pi-po">');
⇒document.writeでページに書き込みます <MAP NAME="マップ名"> マップの宣言を書き込みます
for(i=0;i<map_cng_k;i++){⇒for(初期値;条件;変数の増減){}
⇒forは条件が成立している間の一回は{}内を処理します 条件と変数(この場合はi)が無関係だと永久に繰り返します
document.writeln(map_cng_t[i]);}⇒マップの数だけマップの設定を書き込みます
document.writeln('<AREA SHAPE=DEFAULT>');⇒必要ないですがホタルで追加されるので書き込みます
document.write('</MAP>');⇒マップの終了を書き込みます
function reload_setup(){⇒onLoadで呼び出されます
document.map_change.src=map_cng_i;⇒表示画像を設定
document.map_change.align=map_cng_a;}⇒表示画像の位置を設定します
⇒表示が完了前に関数を呼び出すとエラーとなる為にonLoadで関数を呼び出す
⇒呼出文
<IMG SRC="pictures/yahoo_goo_pi-po.gif" ALT="" ALIGN=BOTTOM WIDTH=312 HEIGHT=113 BORDER=0 USEMAP="#yahoo_goo_pi-po" NAME="map_change" ID="map_change">
⇒<IMG SRC="画像ファイル名" ALT="代替文字" ALIGN=行に対する画像の位置 BORDER=0 USEMAP="#マップ名" NAME="画像名">
⇒BORDER=0で画像のリンク枠を表示させない 画像名を設定しないと画像をJavaScriptで変更できません
⇒画像の位置を確保する為に画像は設定します 画像のサイズは揃えてあります
⇒余談
⇒イメージマップでは同じマップ名では最初に指定したものだけが有効になります
⇒イメージマップでは再定義や設定を解除する方法が見つかりません
⇒イメージマップを変化させたい時は更新による変更しか出来ないようです
⇒イメージマップをJavaScriptで使用する時はonLoadでの呼出しではエラーとなります

マウスを合わせると戻る ホタルの機能
⇒宣言文
function dBsftGoHistory(count, isForward) {
if (isForward == 0) history.go(-(count));⇒戻る時(零)指定した数だけブラウザの表示を戻す
if (isForward == 1) history.go(count);}⇒進む時(壱)指定した数だけブラウザの表示を進める
⇒呼出文
<SPAN onMouseOver="dBsftGoHistory(1,0);">ページ文字</SPAN><BR>⇒呼出(指定数,戻るは零で進むは壱)
⇒onMouseOverがマウスを合わせるのキーワード onMouseOverで指定した関数が処理されます

リンク
使用しているフリーソフトのwebページ等です。
exe,dll等からアイコンを取り出してbmp等に保存できるIconStars等が有ります。
ホームページ辞典 購入した本です。
太陽風 JavaScript,CSS,スタイルシートにカーソルのタイプ等があります。
uruchan'HOME CGI講座にパーミッションの設定等があります。