欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

今天在论坛上看到多次点击阻止按钮导致的恶意刷新 真好 当

终极管理员 知识笔记 83阅读

今天对一个新闻系统发表评论时,他想到了过去防止多次点击“提交”按钮(preventmultipleclicksofasubmitbuttoninASP.NET)的问题,这种问题总是通过重新定位页面来解决。这次我想找一个一劳永逸的办法。通过搜索谷歌,我发现了一些代码,并选择了一些更好的修改。publicvoidpage_load(Objectobj,EventArgse){btn。Attributes.Add('onclick '' state=true');StringBuildersb=new string builder();(somebody的简写)Append('if(!state)返回;“);(somebody的简写)append(' var button=document . getelementbyid(' BTN ');');(somebody的简写)append(' button . value=' please wait.''

a(0, 0, 0, 1)">); 
   sb.Append("document.body.style.cursor='wait';"); 
   sb.Append(
"button.disabled=true;"); 

string strScript="<script>"
strScript
=strScript +"var state=false;"

//将函数绑定到页面的onbeforeunload事件: 
strScript=strScript +"window.attachEvent('onbeforeunload',function(){" +sb.ToString()+ "});"
strScript
=strScript +"</"+"script>"
Page.RegisterStartupScript(
"onbeforeunload",strScript); 


private void Submit_Click(Object sender, EventArgs e){ 
   
//模拟长时间的按钮处理 
   System.Threading.Thread.Sleep(2000); 
   Response.Write(
"<script>alert('bbbbbb!!');"+"</"+"script>"); 




<asp:button id="btn" Text="Submit" OnClick="Submit_Click" runat="server"/>


修改好的这个例子原理是提交后将按钮置于一定时间的无效状态. 
仅能防止一些,因网速慢而心急的用户造成的误点击. 
对于恶意的多次刷新而形成的多次提交还是没有办法解决. 
(不过应该可通过页面的onbeforeunload事件解决) 

标签:
声明:无特别说明,转载请标明本文来源!