閲覧者が何か間違った操作をした場合や注意が必要な場合に警告ダイアログを出す事も出来ます。
JAVAスクリプトを実行出来る環境なら、以下のリンクを指定するとダイアログが表示されるでしょう。
実行出来ない環境では何事も無くリンク先に移動します。
警告ダイアログの表示を実現するJAVAスクリプト「Alert.js」は以下の通りです。
詳しくは、以下の警告ダイアログスクリプトの流れをご覧下さい。
alertMess=new Array();alertMess[0]="このリンク先は『しらぎくさいと』外のサイトです。";function putAlert(key,num) {if (key!=10) return(true);window.alert(alertMess[num]);}
警告ダイアログを利用するに当たっては、HTML文書側にも細工が必要になります。
具体的には、警告を出すべき箇所でJAVAスクリプトを起動する仕掛けを施す必要があります。
<script type="text/javascript" charset="shift_jis" src="Alert.js"></script><ul><li><a href="http://www.yahoo.co.jp/" onclick="putAlert(10,0)" onkeypress="putAlert(event.keyCode,0);">ヤフージャパン</a></li></ul>
onclick属性は、アンカーがクリックされた時点で起動するスクリプトを指定します。この場合、「putAlert(i)」という函数を起動する事になります。
本来、キーボードのみでアクセスしている環境も想定してonkeypress属性も指定し、キーボード入力で同じ処理をするようにする事が求められています。
しかしながら、一部ブラウザにはonkeypress属性がカーソル移動のためのTABキーまで拾ってしまうと言う欠陥があり、この場合カーソル移動のつもりでTABキーを押しても、onkeypress属性で指定された処理が実行されてしまう、すなわちカーソル移動が出来なくなると言う問題があります。
このため、onkeypressでは、押下されたキーが適切なキー(ここではENTERキー)以外の場合は処理を中断させると言う前処理が必要になります。
return(true)」は処理終了後に当該要素の処理を継続させるためのものです。逆に処理終了後に当該要素の処理を中断させるには「return(false)」とします。return(…)」はonkeypress属性で指定された処理を終了させるものです。マウス入力と違ってキー入力の場合は、キーコードの判別が必要になります。キーコードは函数の第一引数(event.keyCodeで取得している)として予め与えておきます。一方マウスの場合は、ENTERキーの押下と見なして処理するため、第一引数にENTERキーを意味する「10」を与えておきます。
また、第二引数ではメッセージの番号を与えております。
警告ダイアログスクリプトの流れは、以下のようになります。
警告ダイアログの初期設定部分のソースです。
alertMess=new Array();alertMess[0]="このリンク先は『しらぎくさいと』外のサイトです。";
まず、alertMess=new Array();で表示させる警告文字列の配列を設定します。続いて警告文字列を 0番目から入れていきます。
警告ダイアログの処理本体部分のソースです。
function putAlert(key,num) {if (key!=10) return(true);window.alert(alertMess[num]);}
キーボード入力の場合、呼出側がevent.keyCodeで拾ったキーコードは第一引数keyで受取っております。
一方、マウスクリックの場合はENTERキー入力と見なして第一引数keyには「10」が与えられております。
ここでは、keyがENTERキー以外、すなわち「10」以外の場合は「return(true);」で本来のキーの処理を続けます。
一方それ以外の場合は、window.alert()メソッドで呼出時に指定した番号の警告文を出力するだけです。
Copyright ©平成15年-平成24年 さいたま・しらぎくさいと 版権所有
marguerite.site@gmail.com