📄 service.js
字号:
/**
该脚本文件提供与后台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 + -