📄 zapatec.js
字号:
if (arrScripts[iScript][1].length){Zapatec.Transport.evalGlobalScope(arrScripts[iScript][1]);}var strAttrs = arrScripts[iScript][0];strAttrs = strAttrs.replace(/\s+/g, ' ').replace(/^\s/, '').replace(/\s$/, '').replace(/ = /g, '=');if (strAttrs.indexOf('src=') >= 0){var objContainer = document.body;if (!objContainer){objContainer = document.getElementsByTagName('head')[0];if (!objContainer){objContainer = document;}}var arrAttrs = strAttrs.split(' ');var objScript = Zapatec.Utils.createElement('script');for (var iAttr = 0; iAttr < arrAttrs.length; iAttr++){var arrAttr = arrAttrs[iAttr].split('=');if (arrAttr.length > 1){objScript.setAttribute(arrAttr[0],arrAttr[1].match(/^[\s|"|']*([\s|\S]*[^'|"])[\s|"|']*$/)[1]);}else{objScript.setAttribute(arrAttr[0], arrAttr[0]);}}objContainer.appendChild(objScript);}}};Zapatec.Transport.fetchXmlDoc = function(objArgs){if (objArgs == null || typeof objArgs != 'object'){return null;}if (!objArgs.url){return null;}if (typeof objArgs.async == 'undefined'){objArgs.async = true;}if (!objArgs.onLoad){objArgs.onLoad = null;}if (!objArgs.onError){objArgs.onError = null;}if (!objArgs.method && typeof objArgs.username == 'undefined' &&typeof objArgs.password == 'undefined'){if (document.implementation && document.implementation.createDocument){var objDocument = null;if (!objArgs.reliable){objArgs.reliable = false;}var objFetchArgs ={};for (var strKey in objArgs){objFetchArgs[strKey] = objArgs[strKey];}if (objArgs.async){objFetchArgs.onLoad = function(objRequest){objFetchArgs.onLoad = null;var parser = new DOMParser();objDocument = parser.parseFromString(objRequest.responseText, "text/xml");Zapatec.Transport.removeBusy(objArgs);Zapatec.Transport.onXmlDocLoad(objDocument, objArgs.onLoad,objArgs.onError);};}else{objFetchArgs.onLoad = null;}var objRequest = Zapatec.Transport.fetch(objFetchArgs);if (!objArgs.async && objRequest){var parser = new DOMParser();objDocument = parser.parseFromString(objRequest.responseText, "text/xml");Zapatec.Transport.removeBusy(objArgs);Zapatec.Transport.onXmlDocLoad(objDocument, objArgs.onLoad,objArgs.onError);return objDocument;}}if (typeof ActiveXObject != 'undefined'){Zapatec.Transport.showBusy(objArgs);try{var objDocument = new ActiveXObject(Zapatec.Transport.XMLDOM);objDocument.async = objArgs.async;if (objArgs.async){objDocument.onreadystatechange = function (){if (objDocument.readyState == 4){Zapatec.Transport.removeBusy(objArgs);Zapatec.Transport.onXmlDocLoad(objDocument, objArgs.onLoad,objArgs.onError);objDocument.onreadystatechange ={};}};}objDocument.load(objArgs.url);if (!objArgs.async){Zapatec.Transport.removeBusy(objArgs);Zapatec.Transport.onXmlDocLoad(objDocument, objArgs.onLoad,objArgs.onError);return objDocument;}return null;}catch (objException){Zapatec.Transport.removeBusy(objArgs);};}}var objFetchArgs ={};for (var strKey in objArgs){objFetchArgs[strKey] = objArgs[strKey];}if (objArgs.async){objFetchArgs.onLoad = function(objRequest){Zapatec.Transport.parseXml({strXml: objRequest.responseText,onLoad: objArgs.onLoad,onError: objArgs.onError});};}else{objFetchArgs.onLoad = null;}var objRequest = Zapatec.Transport.fetch(objFetchArgs);if (!objArgs.async && objRequest){return Zapatec.Transport.parseXml({strXml: objRequest.responseText,onLoad: objArgs.onLoad,onError: objArgs.onError});}return null;};Zapatec.Transport.parseXml = function(objArgs){if (objArgs == null || typeof objArgs != 'object'){return null;}if (!objArgs.strXml){return null;}if (!objArgs.onLoad){objArgs.onLoad = null;}if (!objArgs.onError){objArgs.onError = null;}if (window.DOMParser){try{var objDocument = (new DOMParser()).parseFromString(objArgs.strXml,'text/xml');Zapatec.Transport.onXmlDocLoad(objDocument, objArgs.onLoad,objArgs.onError);return objDocument;}catch (objException){Zapatec.Transport.displayError(0,"Error: Can't parse.\n" +'String does not appear to be a valid XML fragment.',objArgs.onError);};return null;}if (typeof ActiveXObject != 'undefined'){try{var objDocument = new ActiveXObject(Zapatec.Transport.XMLDOM);objDocument.loadXML(objArgs.strXml);Zapatec.Transport.onXmlDocLoad(objDocument, objArgs.onLoad,objArgs.onError);return objDocument;}catch (objException){};}return null;};Zapatec.Transport.onXmlDocLoad = function(objDocument, onLoad, onError){var strError = null;if (objDocument.parseError){strError = objDocument.parseError.reason;if (objDocument.parseError.srcText){strError += 'Location: ' + objDocument.parseError.url +'\nLine number ' + objDocument.parseError.line + ', column ' +objDocument.parseError.linepos + ':\n' +objDocument.parseError.srcText + '\n';}}else if (objDocument.documentElement &&objDocument.documentElement.tagName == 'parsererror'){strError = objDocument.documentElement.firstChild.data + '\n' +objDocument.documentElement.firstChild.nextSibling.firstChild.data;}else if (!objDocument.documentElement){strError = 'String does not appear to be a valid XML fragment.';}if (strError){Zapatec.Transport.displayError(0,"Error: Can't parse.\n" + strError,onError);}else{if (typeof onLoad == 'function'){onLoad(objDocument);}}};Zapatec.Transport.serializeXmlDoc = function(objDocument){if (window.XMLSerializer){return (new XMLSerializer).serializeToString(objDocument);}if (objDocument.xml){return objDocument.xml;}};Zapatec.Transport.fetchJsonObj = function(objArgs){if (objArgs == null || typeof objArgs != 'object'){return null;}if (!objArgs.url){return null;}if (typeof objArgs.async == 'undefined'){objArgs.async = true;}if (!objArgs.reliable){objArgs.reliable = false;}var objFetchArgs ={};for (var strKey in objArgs){objFetchArgs[strKey] = objArgs[strKey];}if (objArgs.async){objFetchArgs.onLoad = function(objRequest){Zapatec.Transport.parseJson({strJson: objRequest.responseText,reliable: objArgs.reliable,onLoad: objArgs.onLoad,onError: objArgs.onError});};}else{objFetchArgs.onLoad = null;}var objRequest = Zapatec.Transport.fetch(objFetchArgs);if (!objArgs.async && objRequest){return Zapatec.Transport.parseJson({strJson: objRequest.responseText,reliable: objArgs.reliable,onLoad: objArgs.onLoad,onError: objArgs.onError});}return null;};Zapatec.Transport.parseJson = function(objArgs){if (objArgs == null || typeof objArgs != 'object'){return null;}if (!objArgs.reliable){objArgs.reliable = false;}if (!objArgs.onLoad){objArgs.onLoad = null;}if (!objArgs.onError){objArgs.onError = null;}var objJson = null;try{if (objArgs.reliable){if (objArgs.strJson){objJson = eval('(' + objArgs.strJson + ')');}}else{objJson = Zapatec.Transport.parseJsonStr(objArgs.strJson);}}catch (objException){var strError ="Error: Can't parse.\nString doesn't appear to be a valid JSON fragment: ";strError += objException.message;if (typeof objException.text != 'undefined' && objException.text.length){strError += '\n' + objException.text;}strError += '\n' + objArgs.strJson;Zapatec.Transport.displayError(0, strError, objArgs.onError);};if (typeof objArgs.onLoad == 'function'){objArgs.onLoad(objJson);}return objJson;};Zapatec.Transport.parseJsonStr = function(text){var p = /^\s*(([,:{}\[\]])|"(\\.|[^\x00-\x1f"\\])*"|-?\d+(\.\d*)?([eE][+-]?\d+)?|true|false|null)\s*/,token,operator;function error(m, t){throw{name: 'JSONError',message: m,text: t || operator || token};}function next(b){if (b && b != operator){error("Expected '" + b + "'");}if (text){var t = p.exec(text);if (t){if (t[2]){token = null;operator = t[2];}else{operator = null;try{token = eval(t[1]);}catch (e){error("Bad token", t[1]);}}text = text.substring(t[0].length);}else{error("Unrecognized token", text);}}else{token = operator = null;}}function val(){var k, o;switch (operator){case '{':next('{');o ={};if (operator != '}'){for (;;){if (operator || typeof token != 'string'){error("Missing key");}k = token;next();next(':');o[k] = val();if (operator != ','){break;}next(',');}}next('}');return o;case '[':next('[');o = [];if (operator != ']'){for (;;){o.push(val());if (operator != ','){break;}next(',');}}next(']');return o;default:if (operator !== null){error("Missing value");}k = token;next();return k;}}next();return val();};Zapatec.Transport.serializeJsonObj = function(v){var a = [];function e(s){a[a.length] = s;}function g(x){var c, i, l, v;switch (typeof x){case 'object':if (x){if (x instanceof Array){e('[');l = a.length;for (i = 0; i < x.length; i += 1){v = x[i];if (typeof v != 'undefined' &&typeof v != 'function'){if (l < a.length){e(',');}g(v);}}e(']');return;}else if (typeof x.toString != 'undefined'){e('{');l = a.length;for (i in x){v = x[i];if (x.hasOwnProperty(i) &&typeof v != 'undefined' &&typeof v != 'function'){if (l < a.length){e(',');}g(i);e(':');g(v);}}return e('}');}}e('null');return;case 'number':e(isFinite(x) ? +x : 'null');return;case 'string':l = x.length;e('"');for (i = 0; i < l; i += 1){c = x.charAt(i);if (c >= ' '){if (c == '\\' || c == '"') {e('\\');}e(c);}else{switch (c){case '\b':e('\\b');break;case '\f':e('\\f');break;case '\n':e('\\n');break;case '\r':e('\\r');break;case '\t':e('\\t');break;default:c = c.charCodeAt();e('\\u00' + Math.floor(c / 16).toString(16) +(c % 16).toString(16));}}}e('"');return;case 'boolean':e(String(x));return;default:e('null');return;}}g(v);return a.join('');};Zapatec.Transport.displayError = function(iErrCode, strError, onError){if (typeof onError == 'function'){onError({errorCode: iErrCode,errorDescription: strError});}else{alert(strError);}};Zapatec.Transport.translateUrl = function(objArgs){if (!objArgs || !objArgs.url){return null;}var arrFullUrl = objArgs.url.split('?', 2);var strUrl = arrFullUrl[0];if (strUrl.charAt(0) == '/' || strUrl.indexOf(':') >= 0){return objArgs.url;}var strRelativeTo;if (typeof objArgs.relativeTo != 'string'){strRelativeTo = document.location.toString().split('?', 2)[0];}else{strRelativeTo = objArgs.relativeTo.split('?', 2)[0];if (strRelativeTo.indexOf('/') < 0){strRelativeTo = document.location.toString().split('?', 2)[0];}else if (strRelativeTo.charAt(0) != '/' &&strRelativeTo.indexOf(':') < 0){strRelativeTo = Zapatec.Transport.translateUrl({url: strRelativeTo});}}var arrUrl = strUrl.split('/');var arrRelativeTo = strRelativeTo.split('/');arrRelativeTo.pop();for (var iToken = 0; iToken < arrUrl.length; iToken++){var strToken = arrUrl[iToken];if (strToken == '..'){arrRelativeTo.pop();}else if (strToken != '.'){arrRelativeTo.push(strToken);}}arrFullUrl[0] = arrRelativeTo.join('/');return arrFullUrl.join('?');};Zapatec.Transport.loading ={};Zapatec.Transport.setupEvents = function(objArgs){if (!objArgs){return{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -