?? ie.js
字號:
_JSVM_Namespace.runtimeEnvironment.loadModule("ie",function(){var jsre=_JSVM_Namespace.runtimeEnvironment;var Exception=_JSVM_Namespace.kernel.Exception;var defaultClassloader4IE=new function(){var cacheEnable=true;var classResourceBases=[];var libResources=[];var classHome=null;var libHome=null;var logger=null;var cache=null;var ex;var CacheComponent=function(){var memoryCache=new function(){var dict={};this.get=function(name){return dict[name];};this.put=function(name,code){dict[name]=code;};this.remove=function(name){delete dict[name];}};var userdataCache=(!cacheEnable)?{get:function(){},put:function(){},remove:function(){}}:new function(){var createUserData=function(){var elmt=document.createElement("meta");elmt.addBehavior("#default#userdata");document.getElementsByTagName("head")[0].appendChild(elmt);return elmt;};var ude0=createUserData();var ude1=createUserData();var defaultExpires=jsre.config.getParameter("expireflag");var udIsOk=true;if(defaultExpires==null){if(/ jsvmCookie_ExpireFlag=([^;]*)/.test(" "+document.cookie)){defaultExpires=RegExp.$1;}else{defaultExpires=String(new Date().getTime());document.cookie="jsvmCookie_ExpireFlag="+defaultExpires;}};var encodeName=function(name){return "jsvm_cache_class_"+name.replace(/(\/)|(\\)|@|&|%|(\.)|,|(\")|'|:/gi, "_");};var saveClass=function(name,value){if(!udIsOk){return;};try{var udName=encodeName(name);ude0.load(udName);ude0.setAttribute("code",value);ude0.setAttribute("expires",defaultExpires);ude0.save(udName);}catch(ex){udIsOk=false;}};var loadClass=function(name){if(!udIsOk){return null;};try{var udName=encodeName(name);ude0.load(udName);return(ude0.getAttribute("expires")==defaultExpires)?ude0.getAttribute("code"):null;}catch(ex){udIsOk=false;return null;}};var removeClass=function(name){if(!udIsOk){return;};try{var udName=encodeName(name);ude0.load(udName);this.element.expires=0;ude0.save(udName);}catch(ex){udIsOk=false;return null;}};var libUserDataName="jsvm_cache_libraryinfos";var libUserDataInited=false;var initLibUserData=function(){if(!libUserDataInited){ude1.load(libUserDataName);libUserDataInited=true;}};var saveLib=function(name,value){if(!udIsOk){return;};try{initLibUserData();var doc=ude1.XMLDocument;var root=doc.documentElement;var node=root.selectSingleNode("//LibItem[@name = \""+name+"\"]");if(node==null){node=doc.createNode(1,"LibItem","");root.appendChild(node);node.setAttribute("name",name);};for(var att in value){node.setAttribute(att,value[att]);};node.setAttribute("expires",defaultExpires);ude1.setAttribute("last_update_date",new Date().toString());ude1.save(libUserDataName);}catch(ex){udIsOk=false;}};var loadLib=function(name){if(!udIsOk){return null;};try{initLibUserData();var doc=ude1.XMLDocument;var root=doc.documentElement;var node=root.selectSingleNode("//LibItem[@name=\""+name+"\"]");var obj=null;if(node!=null&&node.getAttribute("expires")==defaultExpires){obj={};for(var i=0;i<node.attributes.length;i++){att=node.attributes.item(i);obj[att.nodeName]=att.nodeValue;}};return obj;}catch(ex){udIsOk=false;return null;}};var removeLib=function(name){if(!udIsOk){return;};try{initLibUserData();var doc=ude1.XMLDocument;var root=doc.documentElement;var node=root.selectSingleNode("//LibItem[@name=\""+name+"\"]");if(node!=null){root.removeChild(node);ude1.save(libUserDataName);}}catch(ex){udIsOk=false;}};var TaskItem=function(){this.type=0;this.name=null;this.content=null;this.state=0;};var bufferQueue=new function(){var queue=new Array(0);var index=0;this.pop=function(){if(index>=queue.length){throw new Exception(0x002A,"ie.js/UserDataCache:BufferQueue is Empty.",null);};return queue[index++];};this.push=function(o){var l=queue.length;queue[l]=o;};this.empty=function(){return(index>=queue.length);}};var writeThread=new function(){var timer=-1;var delay=100;this.start=function(){if(timer<0){timer=1;this.run();}};this.stop=function(){if(timer>0){window.clearTimeout(timer);timer=-1;}};this.run=function(){if(!bufferQueue.empty()){var item=bufferQueue.pop();switch(item.type){case 0:saveClass(item.name,item.content);break;case 1:savePackage(item.name,item.content);break;case 2:saveLib(item.name,item.content);break;}};if(timer>0){var owner=this;timer=window.setTimeout(function(){owner.run()},delay);}};this.isRunning=function(){return(timer>0);}};this.get=function(type,name){switch(type){case 0:return loadClass(name);case 1:return loadPackage(name);case 2:return loadLib(name);default:return null;}};this.put=function(type,name,value){var item=new TaskItem();item.type=type;item.name=name;item.content=value;bufferQueue.push(item);};this.remove=function(type,name){switch(type){case 0:return removeClass(name);case 1:return removePackage(name);case 2:return removeLib(name);}};writeThread.start();};this.getClass=function(name){var code=memoryCache.get("0"+name);if(code==null){code=userdataCache.get(0,name);if(code!=null){memoryCache.put("0"+name,code);}};return code;};this.putClass=function(name,code){memoryCache.put("0"+name,code);userdataCache.put(0,name,code);};this.getPackage=function(name){var obj=memoryCache.get("1"+name);if(obj==null){obj=userdataCache.get(1,name);if(obj!=null){memoryCache.put("1"+name,obj);}};return obj;};this.putPackage=function(name,obj){memoryCache.put("1"+name,obj);userdataCache.put(1,name,obj);};this.getLib=function(name){var obj=memoryCache.get("2"+name);if(obj==null){obj=userdataCache.get(2,name);if(obj!=null){memoryCache.put("2"+name,obj);}};return obj;};this.putLib=function(name,lib){memoryCache.put("2"+name,lib);userdataCache.put(2,name,lib);}};var resourceLoader=new function(){var xmlHttp=null;try{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(ex){throw new Exception(0x0020,"ie.js/Create ResourceLoader Error: Can't Create XmlHttp object.",ex);};this.loadTxtResource=function(src){try{xmlHttp.open("GET",src,false);xmlHttp.send(null);}catch(ex){throw new Exception(0x0021,"ie.js/ResourceLoader/loadTxtResource(String): Can't load Resource [src:"+src+"] {XmlHttp.send() Error:"+ex.getMessage().replace(/\r\n$/,"")+"}",ex);};if(xmlHttp.status==200||xmlHttp.status==0){return xmlHttp.responseText;};throw new Exception(0x0021,"ie.js/ResourceLoader/loadTxtResource(String): Can't load Resource [src:"+src+"] {HTTP-STATUS:"+xmlHttp.status+"}",null);}};var loadLibFromObject=function(obj){try{if(cacheEnable){var info=cache.getLib(obj.manifest.name);if(info!=null&&info.lastModified==obj.manifest.lastModified){return;}};for(var c in obj.entity){cache.putClass(c,obj.entity[c]);};cache.putLib(obj.manifest.name,obj.manifest);}catch(ex){throw new Exception(0x002E,"ie.js/Classloader:loadLibFromObject(Object): fail. [obj:"+obj+"]",ex);}};var loadScriptLib=function(src){document.write("<script language=\"javascript\" src=\""+((/^(\.|\\|\/|(\w){2,8}:)/.test(src))?src:(libHome+"/"+src))+"\"></script>");};this.loadClassSource=function(name){var err;var classDirs=[classHome].concat(classResourceBases);for(var i=0;i<classDirs.length;i++){var path=classDirs[i]+"/"+name.replace(/\./gi,"/")+".jsc";try{return resourceLoader.loadTxtResource(path);}catch(ex){err=ex;if((ex instanceof Exception)&&(ex.number & 0x0000FFFF)==0x0021){continue;}}};throw new Exception(0x0024,"ie.js/Classloader/loadClassSource(String): Can't load ["+name+"] Class Resource.",err);};this.initialize=function(){cache=new CacheComponent();for(var i=0;i<libResources.length;i++){this.loadLib(libResources[i]);}};this.loadClass=function(name){try{var code=cache.getClass(name);if(null!=code){return code;};code=this.loadClassSource(name);if(cacheEnable&&code!=null){cache.putClass(name,code);};return code;}catch(ex){throw new Exception(0x002B,"ie.js/Classloader.loadClass(String): Class: '"+name+"' NotFound.",ex);}};this.loadPackage=function(name){throw new Exception(0x001B,"ie.js/Classloader.loadPackage(String) not implemented.");};this.loadLib=function(arg){try{switch(typeof(arg)){case "string":loadScriptLib(arg);break;case "object":loadLibFromObject(arg);break;}}catch(ex){logger.log(new Exception(0x002C,"ie.js/Classloader.loadLib(arg): fail [arg:"+arg+"]",ex));}};this.setCacheEnable=function(b){cacheEnable=(b==true);};this.getCacheEnable=function(){return cacheEnable;};this.setClasspath=function(cp){if(cp!=null&&cp!=""){var cps=cp.replace(/;$/,"").split(";");for(var i=0;i<cps.length;i++){if(/\.(\w)+$/.test(cps[i].toLowerCase())){var l=libResources.length;libResources[l++]=cps[i];}else{var l=classResourceBases.length;classResourceBases[l++]=cps[i].replace(/\/$/,"");}}}};this.setClassHome=function(ch){classHome=ch;};this.getClassHome=function(){return classHome;};this.setLibHome=function(lh){libHome=lh;};this.getLibHome=function(){return libHome;};this.setLogger=function(lg){logger=lg;}};var tmp=null;defaultClassloader4IE.setClassHome(((tmp=jsre.config.getParameter("class_home"))==null)?(jsre.jsvmHome+"/classes"):tmp.replace("${jsvmHome}",jsre.jsvmHome));defaultClassloader4IE.setLibHome(((tmp=jsre.config.getParameter("lib_home"))==null)?(jsre.jsvmHome+"/lib"):tmp.replace("${jsvmHome}",jsre.jsvmHome));defaultClassloader4IE.setClasspath(jsre.classpath.replace("${jsvmHome}",jsre.jsvmHome));defaultClassloader4IE.setLogger(jsre.JSVM.logger);defaultClassloader4IE.setCacheEnable(!jsre.debug);defaultClassloader4IE.initialize();jsre.JSVM.setClassloader(defaultClassloader4IE);});
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -