• 防止重复提交的脚本。



    写的防止重复提交的脚本
    http://blog.joycode.com/lostinet/archive/2004/09/18/33901.aspx

    把这个作为 <-script src=.....js-><-/script-> 的形式Render到每个页面中就可以了。|
    如果有PageBase,则在Init的时候用RegisterClientScriptBlock放上去更好。
    因为客户没有抱怨过,所以也没有改进过。


    function _doPostBack(){};
    if(typeof("__doPostBack")=="function")
    {
        _doPostBack=__doPostBack;
        __doPostBack=_doPostBackNew;
    }

    document.attachEvent("onmousemove",_onmousemove);
    var _isPosting=false;
    var _divMask=null;

    function _onmousemove()
    {
        if(_divMask)
        with(_divMask.runtimeStyle)
        {
            left=event.clientX+document.body.scrollLeft-4;
            top=event.clientY+document.body.scrollTop-4;
        }
    }


    function _makeMask()
    {
        var div=document.createElement("DIV");
        with(div.runtimeStyle)
        {
            position="absolute";
            zIndex=999999;
            fontSize="1px";
            left=event.clientX+document.body.scrollLeft-4;
            top=event.clientY+document.body.scrollTop-4;
            width="8px";
            height="8px";
            cursor="wait";
           
            backgroundColor="gray";
            filter="alpha(opacity=10)";
        }
        try
        {
            document.body.insertAdjacentElement("BeforeEnd",div);
            div.onblur=new Function("this.focus()");
            div.focus();
        }
        catch(x){}
       
        if(_divMask)_divMask.removeNode(true);
        _divMask=div;
    }

    function _doPostBackNew(sender,args)
    {
        if(_isPosting)
            return event.returnValue=!(event.cancelBubble=true);

        status="正在更新页面...";
        _doPostBack(sender,args);       
        _isPosting=true;
        _makeMask();
    }

    function _onformsubmit()
    {
        if(_isPosting)
            return event.returnValue=!(event.cancelBubble=true);

        _isPosting=true;
        _makeMask();
    }
    new function _attachForms()
    {
        with(new Enumerator(document.forms))
        for(;!atEnd();moveNext())
        {
            item().attachEvent("onsubmit",_onformsubmit);
            var div=document.createElement("div");
            div.runtimeStyle.width="0px";
            div.runtimeStyle.hight="0px";
            div.runtimeStyle.overflow="hidden";
            div.runtimeStyle.position="absolute";
            item(0).insertAdjacentElement("afterbegin",div);
            div.innerHTML="<INPUT TYPE=Submit name='webformpatchsubmitelement' onclick='return event.returnValue=false' id='webformpatchsubmitelement' value='webformpatchsubmitelement'/>";
        }
    }

  • 相关阅读:
    Go语言 插入排序并返回排序前的索引
    使用patch-package定制node_modules 中的依赖包
    移动端 rem自适应布局 (750的设计稿)
    通过原型截获input.value的方法
    ts 使用 keyof typeof
    logrotate日志管理工具
    【LeetCode刷题】239.滑动窗口最大值
    【LeetCode刷题】剑指Offer 48.最长不含重复字符的子字符串
    【LeetCode刷题】912. 排序数组
    【LeetCode刷题】744. 寻找比目标字母大的最小字母
  • 原文地址:https://www.cnblogs.com/huqingyu/p/213078.html
Copyright © 2020-2023  润新知