「二度押し防止」の編集履歴(バックアップ)一覧はこちら
「二度押し防止」(2006/08/13 (日) 20:04:34) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*二度押し防止
Webアプリケーションにおける二度押し防止方法。
**JavaScript編
***やり方
隠しフレームを使っちゃったりする。
-フレーム用HTML
<FRAMESET cols="100%, *">
<FRAME name="main_frame" src="main.html">
<FRAME name="hide_frame" src="hide.html">
</FRAMESET>
-メインページのHTML
<SCRIPT language="JavaScript">
function check_flag(){
if( parent.hide_frame.submit_flag == 1){
alert("二度押し禁止。");
alert("中止ボタン押しちゃったやつはおとなしく5分待て。");
alert("そしたらもっかいボタン押せるようにしてやるから。");
return false;
}else{
parent.hide_frame.submit_flag = 1;
document.forms[0].submit();
}
}
</SCRIPT>
<FORM>
<INPUT type="button" onClick="check_flag()">
</FORM>
-隠しフレームのHTML
<html>
<head>
<SCRIPT language="JavaScript">
submit_flag = 0;
function uncheck_flag() {
submit_flag = 0;
}
</SCRIPT>
</head>
<body onLoad="setTimeout('uncheck_flag()', 300000)">
</body>
</html>
***備忘録
-setTimeOutって一回こっきりだっけ?繰り返し実行されるんだっけ?
-「二度押し禁止」ってアラート出すんじゃなくボタンをdisableにして押せなくしてもいいんだけど、5分待たずに強制終了されそうなんで押せるようにしといた方がいいかなと思ってみたり。
*二度押し防止
Webアプリケーションにおける二度押し防止方法。
**JavaScript編
***やり方
隠しフレームを使っちゃったりする。
-フレーム用HTML
<FRAMESET cols="100%, *">
<FRAME name="main_frame" src="main.html">
<FRAME name="hide_frame" src="hide.html">
</FRAMESET>
-メインページのHTML
<SCRIPT language="JavaScript">
function check_flag(){
if( parent.hide_frame.submit_flag == 1){
alert("二度押し禁止。");
alert("中止ボタン押しちゃったやつはおとなしく5分待て。");
alert("そしたらもっかいボタン押せるようにしてやるから。");
return false;
}else{
parent.hide_frame.submit_flag = 1;
document.forms[0].submit();
}
}
</SCRIPT>
<FORM>
<INPUT type="button" onClick="check_flag()">
</FORM>
-隠しフレームのHTML
<html>
<head>
<SCRIPT language="JavaScript">
submit_flag = 0;
function uncheck_flag() {
submit_flag = 0;
}
</SCRIPT>
</head>
<body onLoad="setTimeout('uncheck_flag()', 300000)">
</body>
</html>
***備忘録
-setTimeOutって一回こっきりだっけ?繰り返し実行されるんだっけ?
-「二度押し禁止」ってアラート出すんじゃなくボタンをdisableにして押せなくしてもいいんだけど、5分待たずに強制終了されそうなんで押せるようにしといた方がいいかなと思ってみたり。
-そしてフレーム解除されると普通にアボーン。
-所詮イントラの性善説レベルの対応か・・・
-しかも、5分後に解除って、
--5分以上かかる処理だと普通に二度押し可能
--でも解除機能が無いと中止ボタン押されたらアボーン