⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 service.js

📁 以前做的一个j2ee的项目
💻 JS
📖 第 1 页 / 共 3 页
字号:
/**

	该脚本文件提供与后台servlet交互及xml字符串的解析(loadXml)功能,
	包括请求xml的生成,返回数据的解析等函数调用
	另提供类Service,封装了与servlet交互的整个过程

	hqo,2002-10-22
*/

var rMy="";
var sService="";

   function getCodeName(code,xmlfile){
      var cname="";
      xmlfile="../../xml/"+xmlfile;
      xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
            xmlDoc.async = false;
      xmlDoc.load(xmlfile);
      if (xmlDoc.parseError.errorCode != 0) {
		alert("XXGZDA-111:解析XML数据错误:\n"+xmlDoc.parseError.reason);
      }
      var root=xmlDoc.documentElement;
      var row=root.childNodes.length;
      if(row<=0){
         alert("XXGZDA-112:xml文件还没有维护好!");
         return;
      }

      for(var i=0;i<row;i++){
         var item=root.childNodes[i]
             var fpdm=item.childNodes[0].text;
             var fpmc=item.childNodes[1].text;
          if(fpdm==code){
             cname=fpmc;
             break;
          }
      }
      return cname;

   }

function myMessage(str)
{
	var url = location.href;
	//var idx = url.indexOf("/taxweb/");
        //if(idx<=0){
            idx=url.indexOf("/ssgly");
            var file = url.substring(0,idx)+"/ssgly/FileManager/gzdaFile/public/js/showMessage.htm";

        //}else{
	// var file = url.substring(0,idx+7)+"/public/js/showMessage.htm";
        //}
        showModalDialog(file,str,'dialogWidth=480px;dialogheight=530px;status:no;help:no');
}

function MyMessage(xmlDoc)
{
	var url = location.href;

	//var idx = url.indexOf("/taxweb/");
        //if(idx<=0){
            idx=url.indexOf("/ssgly");
            var file = url.substring(0,idx)+"/ssgly/FileManager/gzdaFile/public/js/showMessage_new.htm";

        //}else{
	// var file = url.substring(0,idx+7)+"/public/js/showMessage.htm";
        //}


	showModalDialog(file,xmlDoc,'dialogWidth=480px;dialogheight=530px;status:no;help:no');
}

function setaction(myvalue)
{
	rMy=myvalue;
	return rMy;
}

function setservice(mvalue)
{
    if (mvalue==null)
    {
		value="";
	}
    sService=mvalue;
	return sService;
}


function GetIEVersion()
{
	var IE = ((navigator.userAgent.indexOf("Opera") == -1) && (navigator.appName) == "Microsoft Internet Explorer")?true:false;
	var browser, earmarkStr, startIndex, endIndex, edition;
	var userAgent = navigator.userAgent;
	if (IE)
	{
		browser = "Microsoft Internet Explorer";
		earmarkStr = "MSIE";
		startIndex = userAgent.indexOf(earmarkStr) + earmarkStr.length;
		endIndex = userAgent.indexOf(";",startIndex);
		edition = userAgent.slice(startIndex,endIndex);
		edition=edition.substring(0,edition.indexOf("."));
	}
	if ((edition==null)||(edition==""))
	{
        edition="0";
    }
	return parseInt(edition);
 }
//发送数据给后台,并返回WebServer的执行结果

function sendd(data)
{
	var consoleUrl = self.location.href;//top!=self
	//检索标记,不能检索console,因为当在弹出窗口里执行时会出错

	var idx = consoleUrl.indexOf("/tax/");
	var prefixUrl = consoleUrl.substring(0,idx+1);
	var version=GetIEVersion();
    if (version < 6)
    {
		alert("XXGZDA-113:当前IE不支持XMLHTTP协议,请升级IE到6.0以上!");
        winclose.Click();
        return;
    }

	var action = prefixUrl + "maincontrol";
	var res = null;
	//data = "<?xml version=\"1.0\" encoding=\"GB2312\"?>\n" + data;

	var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
	try
	{
		xmlhttp.Open("POST", action ,false);//同步发送数据
		xmlhttp.Send(data);
		res = xmlhttp.responseXML;
    }
	catch(e)
	{
		alert("XXGZDA-114:连接服务器异常:\n"+e.name+"\n"+e.message);
	}
	return res;
}


function sendSave(data)
{
	var consoleUrl = self.location.href;
	var idx = consoleUrl.indexOf("/tax/");
	var prefixUrl = consoleUrl.substring(0,idx+1);
	var version=GetIEVersion();
    if(version < 6)
    {
		alert("XXGZDA-113:当前IE不支持XMLHTTP协议,请升级IE到6.0以上!");
		winclose.Click();
		return;
	}
	//var action = prefixUrl + "maincontrol";
	var action = prefixUrl +"codeentcontral?ACTION="+rMy+"&SERVICE="+sService;
	alert(action);
	var res = null;

    var xmlDoc = new ActiveXObject('Microsoft.XMLDOM')
	//data = "<?xml version=\"1.0\" encoding=\"GB2312\"?>\n" + data;

    xmlDoc=eval("document.all('"+data+"').XMLDocument");
	var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
	try
	{
		xmlhttp.Open("POST", action ,false);//同步发送数据
		xmlhttp.Send(xmlDoc);
		res = xmlhttp.responseXML;
	}
	catch(e)
	{
		alert("XXGZDA-114:连接服务器异常:\n"+e.name+"\n"+e.message);
	}
	return res;
}

function send(data)
{
	//var consoleUrl = self.location.href;//top!=self
        var consoleUrl = self.location.href;//top!=self
	//检索标记,不能检索console,因为当在弹出窗口里执行时会出错
	//alert(consoleUrl);
	//var idx = consoleUrl.indexOf("/taxweb/");
        //if(idx<=0){
                   idx=consoleUrl.indexOf("/ssgly/");
        //}
	var prefixUrl = consoleUrl.substring(0,idx+7);
        //alert(prefixUrl)
	var version=GetIEVersion();
    if(version < 6)
    {
	alert("XXGZDA-113:当前IE不支持XMLHTTP协议,请升级IE到6.0以上!");
        winclose.Click();
        return;
    }
	var action = prefixUrl + "gzdaServer?ACTION="+rMy+"&SERVICE="+sService;
     //   alert(action)
	//alert(data);
	var res = null;
	//data = "<?xml version=\"1.0\" encoding=\"GB2312\"?>\n" + data;

	var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
	try
	{
		xmlhttp.Open("POST", action ,false);//同步发送数据
		xmlhttp.Send(data);
		res = xmlhttp.responseXML;

	}
	catch(e)
	{
		alert("XXGZDA-114:连接服务器异常:\n"+e.name+"\n"+e.message);
	}
	//MyMessage(res);
	return res;
}

//得到请求的数据,数据的名称,请求的ID
function getRequest(serviceName,reqData)
{
	/**var reqStr = "<TsstudioSession>\n"
					+"  <SERVICE>"+serviceName+"</SERVICE>\n"
					+"    <ACTION>" +getServiceId()+ "</ACTION>\n"
					+ reqData + "\n"
				+"</TsstudioSession>";
                  */
                    reqStr=reqData;
	return reqStr;
}

function getServiceId()
{
	return "SID:000000000000000";
}

/*
//得到Argument节点的值,即输入参数
//参数格式:2维数组
//arrKeyValue[0][0]=NSRSBH,arrKeyValue[0][1]=777777777777715
//arrKeyValue[1][0]=PZXH,arrKeyValue[1][1]=888888888888888
function getArgument(arrKeyValue)
{
	var strArgu = "";
	for(var i=0;i<arrKeyValue.length;i++)
	{
		strArgu += "<" + arrKeyValue[i][0] + ">" + arrKeyValue[i][1] + "</" + arrKeyValue[i][0] +">\n";
	}
	return strArgu;
}
*/

//得到Argument节点的值,即输入参数
//参数格式:一一对应
//getArgument('NSRSBH','777777777777715','PZXH','888888888888888')
function getArgument()
{
	return createArgument(getArgument.arguments);
}

function createArgument(arrKeyValue)
{
	if(arrKeyValue.length == 1)
		return arrKeyValue[0];
	var strArgu = "";
	for(var i=0;i<arrKeyValue.length-1;i=i+2)
	{
		strArgu += "<" + arrKeyValue[i] + ">" + arrKeyValue[i+1] + "</" + arrKeyValue[i] +">\n";
	}
	return strArgu;
}
//将str解析成doc
function loadXml(str)
{
	if(str == null)
		return null;
	//不要用MSXML2.DOMDocument,对象无法赋值
	var doc = new ActiveXObject("MSXML.DOMDocument");
	doc.async = false;
	doc.load(str);
	if (doc.parseError.errorCode != 0) {
		alert("XXGZDA-111:解析XML数据错误:\n"+doc.parseError.reason);
	}
 	return doc;
}

//输入:服务器返回的响应的doc
//输出:需要的CDATA内的数据Str
function getResponse(doc)
{
	//给result设置缺省值
	var result = new Array("1","*","[来自本地]致命错误!与服务器连接失败或返回信息格式错误!","");
	//如果出现了致命的传输错误
	if(doc == null)
		return result;
	var root = doc.documentElement;
	//如果出现了致命的传输错误:服务器返回404...错误时,开始标记为<!DOCTYPE ...>,
	//以该标记开始的字符串不能被loadXml()成doc,因为缺少<?xml ...?>
	//所以会返回null
	if(root == null)
		return result;
	var service = root.getElementsByTagName("Service")(0);
	//如果出现了致命的传输错误:格式不符合
	if(service == null)
		return result;
	var rtnCode = service.getElementsByTagName("RtnCode")(0).text;
	var rtnMsg = service.getElementsByTagName("RtnMsg")(0);

	var code = rtnMsg.getElementsByTagName("Code")(0).text;
	var message = rtnMsg.getElementsByTagName("Message")(0).text;

	var argument = service.getElementsByTagName("Argument")(0).text;

	result[0] = rtnCode;//状态:0/1——成功/失败
	result[1] = code;//状态代码
	result[2] = message;//状态信息
	result[3] = argument;//返回数据

	return result;
}


/////////////////////////////////////////////////////////////////
/////////////////////////类Service////////////////////////////////

//构造函数
function Service(serviceName)
{

	this.serviceName = serviceName;
	this.rtnCode = "1";
	this.code = "";
	this.message = "";
	this.doService = doService;
	this.doServiceSave = doServiceSave;
	this.doServ = doServ;
	this.getRtnCode = getRtnCode;
	this.getCode = getCode;
	this.getMessage = getMessage;

	this.rtnXmlFile = "";/////////////////////////////测试数据
}
//输入参数的方式同getArgument('NSRSBH','777777777777715','PZXH','888888888888888')
//doService('NSRSBH','777777777777715','PZXH','888888888888888')
//返回Argument节点值
function doService()
{
        //得到数据岛
	var argu = createArgument(doService.arguments);
        //
	var req = getRequest(this.serviceName,argu);

    //    alert("11"+this.serviceName+"22"+argu);
	//  var rtn = showMessage("发送数据:\n"+req,-1);///////////////////////////////////
        var rtn=true;
	if(!rtn)
	return;
	  var res = send(req);

	  //showMessage("返回数据:\n"+res,-1);

	//var oRes = loadXml(res);
	//var result = getResponse(oRes);

	//this.rtnCode = result[0];
	//this.code = result[1];
	//this.message = result[2];

	//return result[3];
        return res;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -