リンクを指定した際に注意が必要な場合に確認ダイアログを出すこともできます。
警告ダイアログと異なり、この時点でリンクを拒否する事が出来ます。
成人サイトへのリンクなどに利用すると良いでしょう。
スクリプトを実行できる環境なら、以下のリンクを指定すると警告ダイアログが表示されるでしょう。このとき「OK」等を指定しないとリンク先には進まない筈です。
実行できない環境では何事も無くリンク先に移動します。
リンク先へ進む意思を確認するスクリプト「Confirm.js」は以下の通りです。
alertMess=new Array();alertMess[0]="このリンク先は『しらぎくさいと』外のサイトです。";function putConfirm(key,num) {if (key!=10) return(true);return (window.confirm(alertMess[num]));}
このスクリプトはHTML文書のヘッダで呼出しておきます。本文中の<a>要素のうち、必要なアンカーに以下のようにonclickを仕掛けておきます。
<script type="text/javascript" charset="shift_jis" src="Confirm.js"></script>
<a href="http://www.yahoo.co.jp" onclick="if (!(putConfirm(10,0))) { return(false); }" onkeypress="if (!(putConfirm(event.keyCode,0))) { return(false); };">ヤフージャパン</a>
属性値で描かれているスクリプトは「putConfirm(10,0)」函数を実行して、「偽」の値が返ってきたら「return(false)」を実行するというものです。
!」がついた場合、その式が満たされない場合を真とします。「putConfirm(0)」函数は真偽を返してきますので、真で無いつまり「偽」の時が条件を満たす場合となります。return(false)」を実行すると、当該要素の処理が中断されます。これによって、リンク先の読込みを未然に防げると言う訳です。
return(true)」を実行させます。return(…)」は当該属性で指定された処理を終了させるものです。この為、必ず一番最後に実行させなければなりません。そうでないと「return(…)」から先の処理は実行されないこととなります。マウス入力と違ってキー入力の場合は、キーコードの判別が必要になります。キーコードは函数の第一引数(event.keyCodeで取得している)として予め与えておきます。一方マウスの場合は、ENTERキーの押下と見なして処理するため、第一引数にENTERキーを意味する「10」を与えておきます。
また、第二引数ではメッセージの番号を与えております。
このスクリプトの流れは、以下のようになります。
alertMess=new Array();
alertMess[0]="このリンク先は『しらぎくさいと』外のサイトです。";
まず、警告文字列と、警告を受容れた上で進むURLを指定しておきます。
function putConfirm(key,num) {if (key!=10) return(true);return (window.confirm(alertMess[num]));}
キーボード入力の場合、呼出側がevent.keyCodeで拾ったキーコードは第一引数keyで受取っております。
一方、マウスクリックの場合はENTERキー入力と見なして第一引数keyには「10」が与えられております。
ここでは、keyがENTERキー以外、すなわち「10」以外の場合は「return(true);」で本来のキーの処理を続けます。
一方それ以外の場合は、window.confirm()メソッドで呼出時に指定した番号の警告文を出力するだけですが、その際に返ってくる値を函数の値として返します。
window.confirm()メソッドは確認入力があった場合は「真」を、それ以外は「偽」を返す事になっており、その値をそのまま函数の値としております。すなわち、putConfirm()函数は
ようになっております。
Copyright ©平成15年-平成24年 さいたま・しらぎくさいと 版権所有
marguerite.site@gmail.com