`

用纯javascript写的异步调用js文件xmlcommon.js二

 
阅读更多

function newXMLHttpRequest()
{
 var request=null;
 try
 {
  request=new ActiveXObject("Msxml2.XMLHTTP")
 }
 catch(e)
 {
  try
  {
   request=new ActiveXObject("Microsoft.XMLHTTP")
  }
  catch(sc)
  {
   request=null
  }
 }
 if(!request && typeof XMLHttpRequest!="undefined")
 {
  request=new XMLHttpRequest()
 }
 return request
}

function newXmlDocument()
{
 var xmlDoc=null;
 try
 {
  xmlDoc=new ActiveXObject("Msxml2.DOMDocument")
 }
 catch(e)
 {
  try
  {
   xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
  }
  catch(sc)
  {
   xmlDoc=null
  }
 }
 if(!xmlDoc && typeof XmlDocument!="undefined")
 {
  //XmlDocument doc = new XmlDocument();
  //doc.Load(strXmlName);
  xmlDoc=new XmlDocument()
 }
 return xmlDoc
}

function elmt( id )
{
 return document.getElementById(id);
}

function getReadyStateHandler(req, responseHandler)
{
 return function ()
 {
  if (req.readyState == 4)
  {
   if (req.status == 200)
   {
    responseHandler(req);
   }
   else
   {
    // 有HTTP问题发生
    alert("HTTP error: "+req.status);
   }
  }
 }
}

function getReadyStateHandlerText(req, targetId)
{
 return function ()
 {
  if (req.readyState == 4)
  {
   if (req.status == 200)
   {
    setElementValue(req, targetId);
   }
   else
   {
    // 有HTTP问题发生
    alert("HTTP error: "+req.statusText);
   }
  }
 }
}

function handlerRequestText( elementId )
{
 var jsp_name = elmt('jsp_name');
 var req = newXMLHttpRequest();
   var handler = getReadyStateHandlerText(req, elementId);
   req.onreadystatechange = handler;
   req.open("POST", jsp_name.value, true);
   req.send("");
}

function handlerRequestURLText( url, elementId )
{
 if( url.length == 0 )
 {
  clearAndHiddenElement( elementId );
  return;
 }
 else
 {
  var req = newXMLHttpRequest();
    var handler = getReadyStateHandlerText(req, elementId);
    req.onreadystatechange = handler;
    req.open("POST", url, true);
    req.send("");
   }
}

function handlerSynRequestXML( sendurl, urlparam )
{
 if( sendurl.length == 0 )
 {
  return null;
 }
 else
 {
  if( urlparam == null || urlparam == "undefined" )
  {
   urlparam = "";
  }
  var req = newXMLHttpRequest();
    req.open("POST", sendurl, false);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(urlparam);
    var xmldoc = req.responseXML;
    setElementByXmlDoc( xmldoc );
   }
}

function handlerSynRequestTXT( sendurl, urlparam )
{
 if( sendurl.length == 0 )
 {
  return "";
 }
 else
 {
  if( urlparam == null || urlparam == "undefined" )
  {
   urlparam = "";
  }
  var req = newXMLHttpRequest();
    req.open("POST", sendurl, false);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(urlparam);
    var respTxt = req.responseText;
    return respTxt;
   }
}

function setElementValue( request, elementId )
{
 document.getElementById(elementId).style.display="";
 document.getElementById(elementId).innerHTML=request.responseText;
}

function clearAndHiddenElement( elementId )
{
 document.getElementById(elementId).innerHTML="";
 document.getElementById(elementId).style.display="none";
}

function handlerRequestURLXML( sendurl, responseHandler, urlparam )
{
 if( sendurl.length == 0 )
 {
  responseHandler();
  return;
 }
 else
 {
  if( urlparam == "undefined" || urlparam == null )
  {
   urlparam = "";
  }
  var req = newXMLHttpRequest();
    var handler = getReadyStateHandler(req, responseHandler);
    req.onreadystatechange = handler;
    req.open("POST", sendurl, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(urlparam);
   }
}

function setElementList( request )
{
 if( request != null )
 {
  var xmldoc = request.responseXML;
  return setElementByXmlDoc( xmldoc );
 }
 return false;
}

function setElementByXmlDoc( xmldoc ) {
 //alert( xmldoc );
 var root_node = xmldoc.getElementsByTagName('root').item(0);
 if( root_node == null ) {
  return false;
 } else {
  for( node = root_node.firstChild; node != null ; node=node.nextSibling ) {     
   // alert( elmtId + "'s Attribute: overwrite = " + node.getAttribute("overwrite") );
   var elmtId = node.nodeName;
   if( elmtId.charAt(0) == '_' )
    elmtId = elmtId.substring(1);
   var type = node.getAttribute("type");
   var indexAttr = node.getAttribute("index");
   var elmtObj = null;
   if( indexAttr == null || indexAttr.length == 0 ) {
    elmtObj = document.getElementById(elmtId);
    if (elmtObj != null || "script" == type) {
     setElementValueByXML( node, elmtId, type, elmtObj );
    }
   } else {
    index = parseInt( indexAttr );
    if( index < 0 ) {
     elmtObjs = document.getElementsByName(elmtId);
     if ("script" == type || elmtObjs != null) {
      for( i=0; i<elmtObjs.length; i++ ) { 
       setElementValueByXML( node, elmtId, type, elmtObjs[i] );
      }
     }
    } else {
     elmtObjs = document.getElementsByName(elmtId);
     if (elmtObjs != null || "script" == type) {
      if( elmtObjs.length > index ) {
       //alert( index );
       setElementValueByXML( node, elmtId, type, elmtObjs[index] );
      }
     }
    }
   }
  }
  return true;
 }
}

function setElementValueByXML( node, elmtId, type, elmtObj )

 for( attr = node.firstChild; attr != null ; attr=attr.nextSibling )
 {
  //alert( "type: "+type );
  var attrName = attr.nodeName;
  if( attrName.charAt(0) == '_' )
   attrName = attrName.substring(1);
  var attrValue = "";
  if( "select" == type && attrName == "options")
  {
   if(elmtObj != null)
    removeAllSelectOption( elmtObj );
  }
  if( "script" == type )
  {
   attrValue = getNodeValue( attr );
   //alert( attrValue );
   eval( attrValue );
  }
  else if( "htmlurl" == type )
  {
   url = getNodeValue( attr );
   funcText = "handlerRequestURLText( '"+url+"', '"+elmtId+"' );";
   //alert( "htmlurl: " + funcText );
   eval( funcText );
  }
  else if( "xmlurl" == type )
  {
   url = getNodeValue( attr );
   funcText = "handlerRequestURLXML('"+url +"', "+elmtId+" );";
   alert( "xmlurl: " + funcText );
   eval( funcText );
  }
  else
  {
   //alert( elmtId +"."+attrName );
   if( "select" == type && attrName == "options")
   {
    if( attr.firstChild != null && elmtObj!=null )
    {
     for( option= attr.firstChild; option != null ; option=option.nextSibling )
     {
      var opt_name = option.getAttribute("name");
      var opt_value = option.getAttribute("value");
      var opt_selected = option.getAttribute("selected");
      if(opt_selected != 'null'){
                            appendSelectOptionSelected( elmtObj, opt_value, opt_name, opt_selected);
                        } else{
                         appendSelectOption( elmtObj, opt_value, opt_name );
                        }
     }
    }
   }
   else
   {
    if( attr.firstChild  != null )
    {
     attrValue = getNodeValue( attr.firstChild )
    }
    var isChar = attr.getAttribute("isChar");
    //alert( isChar );
    if( isChar == "false" )
    {
     evalStr = "elmtObj."+attrName + " = "+attrValue+";";
    }
    else
    {
     evalStr = "elmtObj."+attrName + " = attrValue;";
    }
    //alert( evalStr );
    //alert( elmtId+"." + attrName + " = "+attrValue );
    try
    {
     eval(evalStr);
    }
    catch(e)
    {
     alert( e.message+"\n("+elmtId+"." + attrName + " = "+attrValue+";)" );
    }
   }
  }
 } 
}

function getNodeValue( node )
{
 if( node == null )
  return "";
 if( node.nodeType == 4 ) // CDATA Node
 {
  return node.nodeValue;
 }
 else
 {
  var nodeValue = node.xml;
  nodeValue = nodeValue.replace(/\&amp;/g, "&");
  nodeValue = nodeValue.replace(/\&gt;/g,  ">");
  nodeValue = nodeValue.replace(/\&lt;/g, "<");
  nodeValue = nodeValue.replace(/\&quot;/g, "\"");
  nodeValue = nodeValue.replace(/\&apos;/g, "'");
  return nodeValue;
 }
}
/*
function setElementByXmlDoc( xmldoc )
{
 var root_node = xmldoc.getElementsByTagName('root').item(0);
 if( root_node == null )
 {
  return false;
 }
 else
 {
  for( node = root_node.firstChild; node != null ; node=node.nextSibling )
  {     
   // alert( elmtId + "'s Attribute: overwrite = " + node.getAttribute("overwrite") );
   var elmtId = node.nodeName;
   if( elmtId.charAt(0) == '_' )
    elmtId = elmtId.substring(1);
   var type = node.getAttribute("type");
   var elmtObj = document.getElementById(elmtId);
   for( attr = node.firstChild; attr != null ; attr=attr.nextSibling )
   {
    var attrName = attr.nodeName;
    if( attrName.charAt(0) == '_' )
     attrName = attrName.substring(1);
    var attrValue = "";
    if( "select" == type && attrName == "options")
    {
     removeAllSelectOption( elmtObj );
    }
    if( "script" == type )
    {
     attrValue = getNodeValue( attr );
     //alert( attrValue );
     eval( attrValue );
    }
    else// if( attr.firstChild != null )
    {
     //alert( elmtId +"."+attrName );
     if( "select" == type && attrName == "options")
     {
      for( option= attr.firstChild; option != null ; option=option.nextSibling )
      {
       var opt_name = option.getAttribute("name");
       var opt_value = option.getAttribute("value");
       appendSelectOption( elmtObj, opt_value, opt_name );
      }
     }
     else
     {
      //alert( elmtId +"."+attrName );
      attrValue = getNodeValue( attr.firstChild )
      evalStr = "elmtObj."+attrName + " = attrValue;";
      //evalStr = "elmtObj."+attrName + " = "+attrValue+";
      //alert( evalStr );
      try
      {
       eval(evalStr);
      }
      catch(e)
      {
       //alert( e+"\n"+elmtId+"." + attrName + " = "+attrValue+";" );
      }
     }
    }
   }
  }
  return true;
 }
}
*/

function setElementsByString( xmldata )
{
 var xmlDoc = new ActiveXObject("microsoft.xmldom");
 xmldata = unescape( xmldata );
 if( xmldata.length > 50 ) // <?xml version="1.0" encoding="GB2312"?><root></root>
 {
  boolValue = xmlDoc.loadXML(xmldata);
  if( boolValue == true )
  {
   setElementByXmlDoc( xmlDoc );
  }
 }
}

分享到:
评论

相关推荐

    iOS版微信抢红包Tweak.zip小程序

    iOS版微信抢红包Tweak.zip小程序

    毕业设计&课设_篮球爱好者网站,含前后台管理功能及多种篮球相关内容展示.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于springboot社区停车信息管理系统.zip

    基于springboot社区停车信息管理系统.zip

    基于springboot南皮站化验室管理系统源码数据库文档.zip

    基于springboot南皮站化验室管理系统源码数据库文档.zip

    重磅,更新!!!上市公司全要素生产率TFP数据及测算方法(OL、FE、LP、OP、GMM)(2000-2023年)

    ## 数据指标说明 全要素生产率(TFP)也可以称之为系统生产率。指生产单位(主要为企业)作为系统中的各个要素的综合生产率,以区别于要素生产率(如技术生产率)。测算公式为:全要素生产率=产出总量/全部资源投入量。 数据测算:包含OL、FE、LP、OP、GMM共五种TFP测算方法!数据结果包括excel和dta格式,其中重要指标包括证券代码,固定资产净额,营业总收入,营业收入,营业成本,销售费用,管理费用,财务费用,购建固定资产无形资产和其他长期资产支付的现金,支付给职工以及为职工支付的现金,员工人数,折旧摊销,行业代码,上市日期,AB股交叉码,退市日期,年末是否ST或PT等变量指标分析。文件包括计算方法说明及原始数据和代码。 数据名称:上市公司全要素生产率TFP数据及测算方法(OL、FE、LP、OP、GMM) 数据年份:2000-2023年 数据指标:证券代码、year、TFP_OLS、TFP_FE、TFP_LP1、TFP_OP、TFP_OPacf、TFP_GMM

    多种编程语言下算法实现资源汇总

    内容概要:本文详细总结了多种编程语言下常用的算法实现资源,涵盖Python、C++、Java等流行编程语言及其相关的开源平台、在线课程和权威书籍。对于每种语言而言,均提供了具体资源列表,包括开源项目、标准库支持、在线课程及专业书籍推荐。 适合人群:适用于所有希望深入研究并提高特定编程语言算法能力的学习者,无论是编程新手还是有一定经验的技术人员。 使用场景及目标:帮助开发者快速定位到合适的算法学习资料,无论是出于个人兴趣自学、面试准备或是实际工作中遇到的具体算法问题,都能找到合适的解决方案。 其他说明:文中提及多个在线学习平台和社区网站,不仅限于某一特定语言,对于跨学科或多元化技能培养也具有很高的参考价值。

    基于springboot的交通旅游订票系统源码数据库文档.zip

    基于springboot的交通旅游订票系统源码数据库文档.zip

    GO语言教程:基础知识与并发编程

    内容概要:本文档是一份详细的GO语言教程,涵盖了Go语言的基础语法、数据类型、控制结构、函数、结构体、接口以及并发编程等多个方面。主要内容包括Go语言的基本概念和历史背景、环境配置、基本语法(如变量、数据类型、控制结构)、函数定义与调用、高级特性(如闭包、可变参数)、自定义数据类型(如结构体、接口)以及并发编程(如goroutine、channel、select)等内容。每部分内容都附有具体的代码示例,帮助读者理解和掌握相关知识点。 适合人群:具备一定编程基础的开发者,尤其是希望深入学习和应用Go语言的技术人员。 使用场景及目标:①初学者通过本教程快速入门Go语言;②有一定经验的开发者系统复习和完善Go语言知识;③实际项目开发中利用Go语言解决高性能、高并发的编程问题。 阅读建议:本文档全面介绍了Go语言的各项基础知识和技术细节,建议按章节顺序逐步学习,通过动手实践代码示例加深理解。对于复杂的概念和技术点,可以通过查阅更多资料或进行深入研究来巩固知识。

    time_series_at_a_point.ipynb

    GEE训练教程

    memcached笔记资料

    memcached笔记资料,配套视频:https://www.bilibili.com/list/474327672?sid=4486766&spm_id_from=333.999.0.0&desc=1

    基于springboot校内跑腿业务系统源码数据库文档.zip

    基于springboot校内跑腿业务系统源码数据库文档.zip

    计算机控制光感自动窗帘控制系统设计.doc

    计算机控制光感自动窗帘控制系统设计.doc

    基于SpringBoot的校园服务系统源码数据库文档.zip

    基于SpringBoot的校园服务系统源码数据库文档.zip

    基于SpringBoot+Vue的美容店信息管理系统源码数据库文档.zip

    基于SpringBoot+Vue的美容店信息管理系统源码数据库文档.zip

    基于springboot程序设计基础课程辅助教学系统源码数据库文档.zip

    基于springboot程序设计基础课程辅助教学系统源码数据库文档.zip

    原生JS实现斗地主小游戏源码.zip

    这是一个原生的JS网页版斗地主小游戏,代码注释全。带有斗地主游戏基本的地主、选牌、提示、出牌、倒计时等功能。简单好玩,欢迎下载

    基于springboot亚运会志愿者管理系统源码数据库文档.zip

    基于springboot亚运会志愿者管理系统源码数据库文档.zip

    毕业设计&课设_含多功能的远程控制工具集(已停维护),含命令行、文件管理、桌面功能.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    Sen2_NDVI_Max.txt

    GEE训练教程——Landsat5、8和Sentinel-2、DEM和各2哦想指数下载

    基于springboot家校合作平台源码数据库文档.zip

    基于springboot家校合作平台源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics