二度押し防止
Webアプリケーションにおける二度押し防止方法。
JavaScript編
やり方
隠しフレームを使っちゃったりする。
<FRAMESET cols="100%, *">
<FRAME name="main_frame" src="main.html">
<FRAME name="hide_frame" src="hide.html">
</FRAMESET>
<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>
<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分以上かかる処理だと普通に二度押し可能
- でも解除機能が無いと中止ボタン押されたらアボーン
最終更新:2006年08月13日 20:04