• ajax 操作 lcs


    Code

    /*---------------------Ajax请求页面并将返回值赋给某元素--------------------------*/

    function SendToPageFillElement(ElementID,url,data)
    {
     this.ElementType = 1;//填充元素的类型  1:Div文本  2:Div的HTML  3:Input的value
     this.Chunnel = null;//Ajax通道
     var ElementTypeV = this.ElementType;
     var SendCallBack = function mycallback(obj)
     {
      var ElementItem = $(ElementID);
      var ReturnText = obj.responseText;
      switch (ElementTypeV)
      {
       case 1:
        if(navigator.appName.indexOf("Explorer") > -1)//IE
        {
         ElementItem.innerText = ReturnText;
        }
        else//FireFox
        {
         ElementItem.textContent = ReturnText;
        }
        break;
       case 2:
        ElementItem.innerHTML = ReturnText;
        break;
       case 3:
        ElementItem.value = ReturnText;
        break;
      }
     }
     this.SendData = function()
     {
      Request.SendToPage(url,data,SendCallBack,true,this.Chunnel);
     }
    }

    /*------------------------------Ajax消息提示---------------------------*/
    document.write('<div id="AjaxMessageDiv" style="height:0px;overflow:hidden;"><spacer></spacer></div>')
    function Message_Div(MessageIdentity)
    {
     MessageIdentity = MessageIdentity + Math.random().toString().replace('0.','');
     eval('window.obj' + MessageIdentity + ' = this');
     this.Timer1 = null;
     this.Timer2 = null;
     this.MessageText = '请设置MessageText属性';//提示文字
     this.FontColor = '#ffffff';//文字颜色
     this.FontSize = '12px';
     this.BgColor = '#EA5006';//提示文字背影颜色
     this.Width = '220px';//提示框宽度
     this.Height = '18px';//提示框高度
     this.ReferencePoint = 0;//位置参考点  0:窗体中的绝对位置  1:某控件的位置
     this.ReferenceControlName = '';//当ReferencePoint=1时才起作用,为控件的名称
     this.RelativelyPointX = '0px';//相对于ReferencePoint的横向X距离
     this.RelativelyPointY = '0px';//相对于ReferencePoint的纵向Y距离
     this.Disappear = 0;//消失模式     0:不消失  1:渐渐消失  2:透明度闪烁
     this.DisappearMillisecond = 30;//渐渐消失速度(毫秒)越小则越快
     this.CycDivCount = 0;//闪烁的次数  0:无限闪烁
     this.CycMillisecond = 15;
     
     //立即隐藏Message
     this.HiddenMessage = function()
     {
      $('MessageDiv' + MessageIdentity).style.display = 'none';
     }
     //主运行函数  MessageIdentity:代表页面中提示的标识ID
     this.ShowMessage = function()
     {
      window.clearInterval(this.Timer1);
      window.clearInterval(this.Timer2);
      if (this.MessageText == '')
      {
       return;
      }
      var MessageDiv = $('MessageDiv' + MessageIdentity);
      if (!MessageDiv)
      {
       $('AjaxMessageDiv').innerHTML += '<div id="MessageDiv' + MessageIdentity + '" style="DISPLAY: none;Z-INDEX: 99;POSITION: absolute;FILTER: alpha(opacity=100); text-align:center"></div>';
       MessageDiv = $('MessageDiv' + MessageIdentity);
      }
      if ( !MessageDiv.filters )//FireFox
      {
       MessageDiv.style.opacity = 1;
      }
      else//IE
      {
       MessageDiv.filters.alpha.opacity = 100;//将透明度恢复为100
      }
      MessageDiv.style.color = this.FontColor;
      if(navigator.appName.indexOf("Explorer") > -1)//IE
      {
       MessageDiv.innerText = this.MessageText;
      }
      else//FireFox
      {
       MessageDiv.textContent = this.MessageText;
      }
      MessageDiv.style.fontSize = this.FontSize;
      MessageDiv.style.backgroundColor = this.BgColor;
      MessageDiv.style.width = this.Width;
      MessageDiv.style.height = this.Height;
      MessageDiv.style.lineHeight = this.Height;
      var PositionX;//相对于窗体的X值
      var PositionY;//相对于窗体的Y值
      switch (this.ReferencePoint)
      {
       case 0:
        PositionX = this.RelativelyPointX;
        PositionY = this.RelativelyPointY;
        break;
       case 1:
        var ReferenceControl = $(this.ReferenceControlName);
        //获取相对于窗口的x y 值
        var winOffsetX = ReferenceControl.offsetTop;
        var winOffsetY = ReferenceControl.offsetLeft;
        //当ReferenceControl包含在其它Html元素或控件中时,正确计算x y 值
        while (ReferenceControl = ReferenceControl.offsetParent){winOffsetX += ReferenceControl.offsetTop; winOffsetY += ReferenceControl.offsetLeft;}
        PositionX = CountPx(this.RelativelyPointX,winOffsetY);
        PositionY = CountPx(this.RelativelyPointY,winOffsetX);
        //MessageDiv.style.display = '';
        //MessageDiv.style.top = winOffsetX;
        //MessageDiv.style.left = winOffsetY + ControlW;
        break;
      }
      MessageDiv.style.top = PositionY;
      MessageDiv.style.left = PositionX;
      MessageDiv.style.display = '';
      var IsFF;
      if (!MessageDiv.filters)
      {
       IsFF = true;
      }
      else
      {
       IsFF = false;
      }
      switch (this.Disappear)
      {
       case 1:
        //this.MessageDivOpacityOdd(MessageIdentity);
        window.clearInterval(this.Timer1);
        this.Timer1 = window.setInterval("window.obj" + MessageIdentity + ".MessageDivOpacityOdd(" + IsFF + ")",this.DisappearMillisecond);
        break;
       case 2:
        window.clearInterval(this.Timer2);
        this.Timer2 = window.setInterval("window.obj" + MessageIdentity + ".MessageDivOpacityRay(" + this.CycDivCount + "," + IsFF + ")",this.CycMillisecond);
        break;
      }
     }
     this.MessageDivOpacityOdd = function(IsFF)
     {
      var MessageDiv = $('MessageDiv' + MessageIdentity);
      if ( IsFF )//FireFox
      {
       if (MessageDiv.style.opacity > 0)
       {
        MessageDiv.style.opacity -= 0.01;
       }
       else
       {
        MessageDiv.style.display = 'none';
        window.clearInterval(this.Timer1);
       }
      }
      else//IE
      {
       if (MessageDiv.filters.alpha.opacity > 0)
       {
        MessageDiv.filters.alpha.opacity -= 1;
       }
       else
       {
        MessageDiv.style.display = 'none';
        window.clearInterval(this.Timer1);
       }
      }
     }
     var upordown = 0;
     var CycCount = 0;//当前循环了多少次
     this.MessageDivOpacityRay = function(myCount,IsFF)//myCount总共闪烁几次,如果为0则为无限闪烁
     {
      var MessageDiv = $('MessageDiv' + MessageIdentity);
      if ( IsFF )//FireFox
      {
       if ( myCount != 0 && CycCount > myCount )
       {
        window.clearInterval(this.Timer2);
        MessageDiv.style.display = 'none';
        return;
       }
       switch ( upordown )
       {
        case 1:
         if(MessageDiv.style.opacity != 1 )
         {
          MessageDiv.style.opacity = 1;    
         }
         else
         {
          upordown = 0;
         }
         break;
        case 0:
         if(MessageDiv.style.opacity <= 1 && MessageDiv.style.opacity>=0.1   )
         {
          MessageDiv.style.opacity -= 0.03;  
         }
         else
         {
          CycCount++;
          upordown = 1;
         }
         break;
       } 
      }
      else//IE
      {
       if ( myCount != 0 && CycCount > myCount )
       {
        window.clearInterval(this.Timer2);
        MessageDiv.style.display = 'none';
        return;
       }
       switch ( upordown )
       {
        case 1:
         if(MessageDiv.filters.alpha.opacity != 100 )
         {
          MessageDiv.filters.alpha.opacity += 3;
         }
         else
         {
          upordown = 0;
         }
         break;
        case 0:
         if(MessageDiv.filters.alpha.opacity <= 100 && MessageDiv.filters.alpha.opacity>=10   )
         {
          MessageDiv.filters.alpha.opacity -= 3;  
         }
         else
         {
          CycCount++;
          upordown = 1;
         }
         break;
       } 
      }
     }
    }


    //将两个px字符型的变量相加,返回的数字仍然是后带px
    function CountPx(PxA,PxB)
    {
     return (parseInt(PxA.toString().replace('px','')) + parseInt(PxB.toString().replace('px',''))).toString() + 'px';
    }


    /**
     * 函数 $
     * 功能 获取dhtml对象
     * 参数 e 待查找的对象id或name
     * 返回 成功:对象 失败:null
     */
    function $(e) {
      var tag = document.getElementById(e);
      if(tag) return tag;
      tag = document.getElementsByName(e);
      if(tag.tagName == undefined) return null;
      return tag;
    }

    function CreaeXMLDOM()
    {
        var MSDOM = ['MSXML2.DOMDocument.4.0', 'MSXML2.DOMDocument.3.0', 'MSXML2.DOMDocument.2.6', 'MSXML2.DOMDocument', 'Microsoft.XMLDOM'];
        var XMLDOM;
        for(var n = 0; n < MSDOM.length; n++)
        {
            try
            {
                XMLDOM = new ActiveXObject(MSDOM[n]);
                break;
            }
            catch(e)
            {
            }
        }
        if(typeof(XMLDOM) != "object")
      XMLDOM = document.implementation.createDocument("text/xml", "", null);
        if(typeof(XMLDOM) != "object")
            alert('创建XMLDOM对象失败,请升级您的浏览器');
        return XMLDOM;
    }

    function GetXmlNodeValue(objXmlElement)
    {
        var str = "";
        if(window.XMLHttpRequest)        //Mozilla
        {
            try
            {
                str = objXmlElement.firstChild.nodeValue;
            }
            catch(ex)
            {
       alert(ex);
                str = "";
            }
        }
        else if(window.ActiveXObject)    //IE
        {
            str = objXmlElement.text;
        }
        return str;
    }

    if( document.implementation.hasFeature("XPath", "3.0") )
    {

    XMLDocument.prototype.loadXML = function(xmlString)
    {
        var childNodes = this.childNodes;
        for (var i = childNodes.length - 1; i >= 0; i--)
            this.removeChild(childNodes[i]);

        var dp = new DOMParser();
        var newDOM = dp.parseFromString(xmlString, "text/xml");
        var newElt = this.importNode(newDOM.documentElement, true);
        this.appendChild(newElt);
    }

    // prototying the Element
    Element.prototype.selectNodes = function(cXPathString)
    {
        if(this.ownerDocument.selectNodes)
        {
            return this.ownerDocument.selectNodes(cXPathString, this);
        }
        else{throw "For XML Elements Only";}
    }

     

    XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
           {
              if( !xNode ) { xNode = this; }
              var oNSResolver = this.createNSResolver(this.documentElement)
              var aItems = this.evaluate(cXPathString, xNode, oNSResolver,
                           XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
              var aResult = [];
              for( var i = 0; i < aItems.snapshotLength; i++)
              {
                 aResult[i] =  aItems.snapshotItem(i);
              }
              return aResult;
           }

     Element.prototype.selectSingleNode = function(cXPathString)
           {   
              if(this.ownerDocument.selectSingleNode)
              {
                 return this.ownerDocument.selectSingleNode(cXPathString, this);
              }
              else{throw "For XML Elements Only";}
           }


    XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
           {
              if( !xNode ) { xNode = this; }
              var xItems = this.selectNodes(cXPathString, xNode);
              if( xItems.length > 0 )
              {
                 return xItems[0];
              }
              else
              {
                 return null;
              }
           }
    }

     

    /** */
    var Request = new function(){

    this.pool = new Array();

    //建立XMLHttp对像,并处理通道
    this.getXMLHttp = function (chunnel)
    {
     
     if(chunnel != null)
     {
      for (var a = 0; a < this.pool.length; a++)
      {
       if(this.pool[a]["chunnel"] == chunnel)
       {
     if(this.pool[a]["obj"].readyState == 0 || this.pool[a]["obj"].readyState == 4)
        {
         return this.pool[a]["obj"];
        }
     else
     {
          return "busy";
     }
       }
      }
     
      this.pool[this.pool.length] = new Array();
      this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
      this.pool[this.pool.length - 1]["chunnel"] = chunnel;
      return this.pool[this.pool.length - 1]["obj"];
     
     }
     
     for (var i = 0; i < this.pool.length; i++)
     {
      if (this.pool[i]["obj"].readyState == 0 || this.pool[i]["obj"].readyState == 4)
      {
       return this.pool[i]["obj"];
      }
     }
     
     this.pool[this.pool.length] = new Array();
     this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
     this.pool[this.pool.length - 1]["chunnel"] = "";
     return this.pool[this.pool.length - 1]["obj"];

    }

    this.createXMLHttp = function ()
    {
     
     if(window.XMLHttpRequest)
     {
      var xmlObj = new XMLHttpRequest();
     }
     else
     {
      var MSXML = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
      for(var n = 0; n < MSXML.length; n++)
      {
       try
       {
        var xmlObj = new ActiveXObject(MSXML[n]);       
        break;
       }
       catch(e)
       {
       }
      }
     }
     
     return xmlObj;

    }

    //主运行部分  IsAsynchronous是否为异步方式  异步:后面的代码无需等待此回调执行完毕   同步:等待XmlHttp返回结果后再继续执行
    this.SendToPage = function (url,data,callback,IsAsynchronous,chunnel)
    {
     var objXMLHttp = this.getXMLHttp(chunnel)
     
     //创建XMLHTTP对象失败
     if(typeof(objXMLHttp) != "object")
     {
     if (objXMLHttp == 'busy')
     {
      alert('您的上次操作还没有完成,请稍候再进行此操作');
     }
     else
     {
      alert('请升级您的浏览器');
     }
      return ;
     }
     
     //解决XMLHTTP请求时浏览器缓存的问题
     url += (url.indexOf("?") >= 0) ? "&nowtime=" + new Date().getTime() : "?nowtime=" + new Date().getTime();

     if(data == "")
     {
      objXMLHttp.open('GET' , url, IsAsynchronous);
      objXMLHttp.send('');
     }
     else
     {
      objXMLHttp.open('POST' , url, IsAsynchronous);
      //为Post时,需要设置一下XMLHTTP的头
      objXMLHttp.setRequestHeader("Content-Length",data.length);
      objXMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded charset=utf-8");
      objXMLHttp.send(data);
     }
     //处理回调函数
     if(typeof(callback) == "function" )
     {
        if (IsAsynchronous)
        {
            objXMLHttp.onreadystatechange = function ()
              {
               if (objXMLHttp.readyState == 4)
               {
                if(objXMLHttp.status == 200 || objXMLHttp.status == 304)
                {
        callback(objXMLHttp,'');
                }
                else
                {
                 //alert("发生错误:\n"+ objXMLHttp.status +":"+ objXMLHttp.statusText);
                 callback(null,'发生错误:' + objXMLHttp.status +":"+ objXMLHttp.statusText);
                }
               }
              }
        }
        else
        {
           if (objXMLHttp.readyState == 4)
           {
            if(objXMLHttp.status == 200 || objXMLHttp.status == 304)
            {
              callback(objXMLHttp,'');
            }
            else
            {
             //alert("发生错误:\n"+ objXMLHttp.status +":"+ objXMLHttp.statusText);
             callback(null,'发生错误:' + objXMLHttp.status +":"+ objXMLHttp.statusText);
            }
           }
        }
     }

    }

    }

    var DateTime = new function ()
    {
       var d = new Date();
       var s;
       s = d.getYear() + '-';
       s += (d.getMonth() + 1) + "-";
       s += d.getDate();
       this.Now = s;
    }

    /*--------------------------IE  FireFox 兼容------------------------*/
    //innerText
    if(typeof HTMLElement!="undefined"){
            HTMLElement.prototype.innerText
            getter = function(){
                    return this.textContent;
            }

            HTMLElement.prototype.innerText
            setter = function(txtStr){
                    this.textContent = txtStr
            }
    }

  • 相关阅读:
    Linux 下安装 numpy 和 scipy
    排序算法总结
    机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
    Java读取Excel并解析文本(并格式化输出)
    快捷键记忆
    初级应该学习的
    深入理解加密、解密、数字签名和数字证书
    数据签名和验签
    POI结构与常用类
    exlipse继承反编译插件
  • 原文地址:https://www.cnblogs.com/luchaoshuai/p/1153116.html
Copyright © 2020-2023  润新知