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

📄 capxous.js

📁 一个基于Struts架构
💻 JS
字号:
// CAPXOUS AutoComplete 1.2.4 (20061109051451)var CAPXOUS=new Object();CAPXOUS.isKHTML=navigator.appVersion.match(/Konqueror|Safari|KHTML/);CAPXOUS.isMoz=!CAPXOUS.isKHTML&&navigator.userAgent.indexOf('Mozilla/5.')==0;CAPXOUS.isIE=navigator.userAgent.indexOf('MSIE')>1;Object.extend(CAPXOUS,{h:function(o){var s=0;for(i=0;i<o.length;i++){s+=o.charCodeAt(i);};var base='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';var h=base.substr(s&63,1);while(s>63){s>>=6;h=base.substr(s&63,1)+h;};return h;},y:function(o){return o.owner&&o.key&&!o.key.indexOf(CAPXOUS.h(o.owner));},w:function(){return"<br/><a style='font-size:10px !important;display:inline !important;color:#000 !important;background:#fff !important;visibility:visible !important;text-indent:0px !important; text-decoration:underline;' href='http://capxous.com#powered'>Powered&nbsp;By&nbsp;CAPXOUS</a>";},b:function(text){return text.substring(text.indexOf('{')+1,text.lastIndexOf('}'));},focus:function(t){t.focus();var l=t.value.length;if(CAPXOUS.isIE){var r=t.createTextRange();r.moveStart('character',l);r.moveEnd('character',l);r.select();}else{t.setSelectionRange(l,l);};}});CAPXOUS.AutoComplete=Class.create();Object.extend(CAPXOUS.AutoComplete,{u:function(e){while(e=e.parentNode){if(e.style){if(e.style.overflow=='hidden')e.style.overflow='visible';if(e.style.tableLayout=='fixed')e.style.tableLayout='auto';}}},removeWatermark:function(name,key){var cls=CAPXOUS.AutoComplete;cls.owner=name+' AutoComplete';cls.key=key;},style:{wait:'CAPXOUS_AutoComplete_waiting'},findPopup:function(v){var e=Event.element(v);e=e?e:v;while(e&&e.parentNode&&!e.object)e=e.parentNode;if(e==null)return null;return e.parentNode?e:null;},isSelectable:function(e){return(e.nodeType==1)&&(e.getAttribute('onselect'));},findSelectable:function(v,p){var e=Event.element(v);while(e.parentNode&&(e!=p)&&(!CAPXOUS.AutoComplete.isSelectable(e)))e=e.parentNode;return(e.parentNode&&(e!=p))?e:null;},process:function(e,o){if(!Element.hasClassName(e,'usual')){var url;if(e.getAttribute('ajaxHref'))url=e.getAttribute('ajaxHref');else url=e.getAttribute('href');o.request(url);}},click:function(v){var cls=CAPXOUS.AutoComplete;var e=Event.element(v);var p=cls.findPopup(v);if(p){var t=p.object.text;CAPXOUS.focus(t);var s=cls.findSelectable(v,p);var o=p.object;if(s){o.i=s.getAttribute(cls.index);o.z();}else{while(e.parentNode&&(e!=p)&&(!e.tagName||e.tagName.toUpperCase()!='A'))e=e.parentNode;if(e.parentNode&&(e!=p))cls.process(e,o,v);}}else{cls.inst.each(function(i){if(i.text!=e&&i.update!=e)setTimeout(i.hide.bind(i),10);});}},mouseover:function(v){var cls=CAPXOUS.AutoComplete;var p=cls.findPopup(v);if(p){var s=cls.findSelectable(v,p);if(s)p.object.focus(s.getAttribute(cls.index));}},init:function(){var c=CAPXOUS;var ca=c.AutoComplete;var p=document.createElement('div');p.className=ca.style.wait;var s=p.style;s.display='inline';s.position='absolute';s.width=s.height=s.top=s.left='0px';document.body.appendChild(p);if(c.isIE)c.selfName=self.name;},index:'index',inst:new Array(),name:'',key:'',getWindowHeight:function(){var h=0;if(typeof(window.innerHeight)=='number'){h=window.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){h=document.documentElement.clientHeight;}else if(document.body&&document.body.clientHeight){h=document.body.clientHeight;};return parseInt(h);},getStyle:function(e){if(!CAPXOUS.isKHTML&&document.defaultView&&document.defaultView.getComputedStyle){return document.defaultView.getComputedStyle(e,null);}else if(e.currentStyle){return e.currentStyle;}else{return e.style;}},getInt:function(s){var i=parseInt(s);return isNaN(i)?0:i;}});Event.observe(window,'load',CAPXOUS.AutoComplete.init);CAPXOUS.AutoComplete.prototype={visible:false,complete:false,initialized:false,timeout:0,i:-1,latestQuery:'',initialize:function(text,f,options){text=$(text)?$(text):document.getElementsByName(text)[0];if((text==null)||(f==null)||(typeof f!='function'))return;text.setAttribute('autocomplete','off');this.onchange=text.onchange;text.onchange=function(){};this.txtBox=this.text=text;this.setOptions(options);this.getURL=f;this.buffer=document.createElement('div');var p=document.createElement('div');p.object=this;Element.addClassName(p,'CAPXOUS_AutoComplete');var ps=p.style;ps.position='absolute';ps.top='-999px';ps.height='auto';Element.hide(p);this.update=p;var cls=CAPXOUS.AutoComplete;cls.inst.push(this);if(!CAPXOUS.y(cls)){new Insertion.After(this.text,CAPXOUS.w());cls.u(this.text);};this.cls=cls;this.r();},setOptions:function(options){this.options={width:'auto',frequency:0.4,minChars:1,delimChars:', '};Object.extend(this.options,options||{});},r:function(){this._k=this.k.bindAsEventListener(this);this._request=this.request.bind(this);this.__focus=this._focus.bind(this);var t=this.text;Event.observe(t,'keydown',this._k);Event.observe(t,'keyup',this._k);Event.observe(t,'dblclick',this._request);Event.observe(t,'focus',this.__focus);Event.observe(t,'blur',this.blur.bind(this));if(this.cls.inst.length==1){Event.observe(document,'click',this.cls.click);Event.observe(document,'mouseover',this.cls.mouseover);};},ajaxpro:function(text,b){if(this.latestAjaxPro==b){this.update.innerHTML=text.value;this.o();}},indexOfLatestQuery:function(){var d=this.options.delimChars,v=this.text.value,i,j,k=0;for(i=v.length-1;i>=0;i--){for(j=0;j<d.length;j++)if(v.charAt(i)==d.charAt(j)){k=i+1;break;};if(k)break;};return k;},page:function(name){var e=$A(document.getElementsByClassName(name)).find(function(e){return this.cls.findPopup(e)==this.update;}.bind(this));if(e&&e.tagName&&e.tagName.toUpperCase()=='A')this.cls.process(e,this);},_focus:function(){this.status='on';if(!this.visible&&this.text.value=='')this.request();},blur:function(){if(!this.visible){this.status='off';setTimeout(function(){if(this.status=='off')this.stop();}.bind(this),10);}},stop:function(){this.c();this.stopIndicator();this.hide();},e:function(event){var c=event.keyCode;if(c==38||c==40){if(this.complete){(c==38)?this.up():this.down();this.s();};};if(c==33||c==34){if(this.complete)(c==33)?this.page('page_up'):this.page('page_down');};if(c==27)this.hide();if(c==38||c==40||c==33||c==34||c==27){Event.stop(event);return;};switch(c){case 9:case 37:case 39:case 35:case 36:case 45:case 16:case 17:case 18:break;default:if(this.timeout!=0)clearTimeout(this.timeout);this.c();setTimeout(function(){this.value=this.text.value;this.latestQuery=this.value.substr(this.indexOfLatestQuery());this.timeout=setTimeout(this._request,this.options.frequency*1000);}.bind(this),10);}},c:function(){if(this.latest)this.latest.transport.abort();},k:function(event){var c=event.keyCode;if(c==9){if(event.type=='keydown'&&this.visible)this.z();return;};if(c==13){Event.stop(event);if(event.type=='keyup'){if(this.latestKeyCode==13&&this.latestType=='keydown'){this.visible?this.z():this.request();}else{this.request();}}};this.latestType=event.type;this.latestKeyCode=event.keyCode;if(event.type=='keydown'&&c!=13)this.e(event);},z:function(){var z=function(s){s=CAPXOUS.b(s.toString()).replace(new RegExp("[\\s\.{}();\\\"\\'\\\\/]","g"),'');var z=0;for(var i=0;i<s.length;i++)z=(z+s.charCodeAt(i))%1986;return z;};var c=this.cls;var ca=CAPXOUS;if(this.getItem()&&(z(ca.y)+z(ca.w)+z(ca.h)+z(c.u)+z(c.prototype.initialize)==3537)){try{eval(this.getItem().getAttribute('o'+'n'+'se'+'le'+'ct'));}catch(e){this.onError(e)};if(this.onchange){setTimeout(function(){this.onchange.bind(this.text)();}.bind(this),10);}};this.stop();},getItem:function(){return this.items?this.items[this.i]:null;},focus:function(i){if(!this.complete)return;Element.removeClassName(this.getItem(),'current');this.i=i;Element.addClassName(this.getItem(),'current');try{var z=this.getItem().getAttribute('onfocus');if(CAPXOUS.isIE)z=CAPXOUS.b(z.toString());eval(z);}catch(e){}},up:function(){if(this.i>-1)this.focus(this.i-1);},down:function(){if(this.i<this.items.length-1)this.focus(this.i+1);},preRequest:function(){var l=this.latestQuery?this.latestQuery.length:this.text.value.length;if(!l)this.onReset();return l>=this.options.minChars;},request:function(url){if(typeof url!='string')url=false;if(this.status=='on'&&this.preRequest()){if(!this.pro){this.getURL=new Function(CAPXOUS.b(this.getURL.toString()).replace('CAPXOUS.AjaxPro','this.ajaxpro.bind(this), null, function() { this.doStateChange() }, null, null, function(a, b) { if (a == 0) this.latestAjaxPro = b; }.bind(this)')).bind(this);this.pro=true;};if(url)this.onLoading(true);else this.onLoading();var _url=this.getURL();if(typeof _url=='string'){if(url){var loc=location.protocol+'//'+location.host+location.pathname;if((url.charAt(0)=='?')||((url.indexOf(loc)==0)&&(url.charAt(loc.length)=='?'))){if(url.charAt(0)!='?')url=url.substr(loc.length);_url+='&'+url.substr(1);}else{_url=url;};};this.url=_url=encodeURI(_url);this.latest=new Ajax.Updater(this.buffer,_url,{method:'get',onComplete:this.onComplete.bind(this),onFailure:this.onFailure.bind(this)});}}else this.stop();},onError:function(){},onReset:function(){},onFailure:function(){},onLoading:function(){this.complete=false;this.i=-1;this.startIndicator();},onComplete:function(){setTimeout(this.d.bind(this,arguments[0]),10);},o:function(){if(!this.initialized){this.initialized=true;document.body.appendChild(this.update);};this.i=-1;this.items=new Array();if(CAPXOUS.isIE)this.update.innerHTML+="<img style='width:0px;height:0px;clear:both' align='right'/>";$A(this.update.getElementsByTagName('a')).each(function(a){if(!Element.hasClassName(a,'usual')){a.onclick=function(){return false;};};});$A(this.update.getElementsByTagName('*')).each(function(c){if(this.cls.isSelectable(c)){c.setAttribute(this.cls.index,this.items.length);Element.addClassName(c,'selectable');this.items.push(c);}}.bind(this));this.complete=true;this.down();if(!this.visible)this.s();this.stopIndicator();},d:function(){var tx=this.latest.transport;if((this.status=='on')&&(tx==arguments[0])){if(this.latest.url!=this.url)return;this.complete=true;try{if((typeof tx.status!="unknown")&&this.latest.responseIsSuccess()){var text=null;if((tx.responseXML)&&(tx.responseXML.documentElement)){var docE=tx.responseXML.documentElement;if(docE.nodeName=='string'){if(docE.text){text=docE.text;}else if(docE.textContent){text=docE.textContent;}else if(docE.firstChild.nodeValue){text=docE.firstChild.nodeValue;}}};if(text==null)text=this.buffer.innerHTML;this.update.innerHTML=text;}else{this.update.innerHTML='<div>'+tx.status+' '+(tx.statusText?tx.statusText:'')+'</div>';};this.o();}catch(e){};this.buffer.innerHTML='';};},offset:function(){var o=0;if(CAPXOUS.isMoz||CAPXOUS.isKHTML||(CAPXOUS.isIE&&(document.compatMode!='BackCompat'))){var bl='border-left-width';var br='border-right-width';var pl='padding-left';var pr='padding-right';var f=new Function('e','p','return CAPXOUS.AutoComplete.getInt(Element.getStyle(e, p));');o=f(this.update,bl)+f(this.update,br)+f(this.update,pl)+f(this.update,pr);};return o;},f:function(){if(!this.iframe){var i=document.createElement('iframe');i.src='javascript:false;';var is=i.style;is.filter="progid:DXImageTransform.Microsoft.Alpha(opacity = 50)";is.position='absolute';is.margin=is.padding='0px';Element.hide(i);document.body.appendChild(i);this.iframe=i;};self.name=CAPXOUS.selfName;Position.clone(this.update,this.iframe);Element.show(this.iframe);},s:function(){this.status='on';var z=function(s){s=CAPXOUS.b(s.toString()).replace(new RegExp("[\\s\.{}();\\\"\\'\\\\/]","g"),'');var z=0;for(var i=0;i<s.length;i++)z=(z+s.charCodeAt(i))%1985;return z;};var c=this.cls;var ca=CAPXOUS;if(z(ca.y)+z(ca.w)+z(ca.h)+z(c.u)+z(this.initialize)!=3592)return;var pos=Position.cumulativeOffset(this.text);var tt=pos[1];var th=this.text.offsetHeight;var tl=pos[0];var tw=this.text.offsetWidth;var wh=this.cls.getWindowHeight();if(this.options.width=='auto'){tw=tw-this.offset()+'px';}else{tw=this.options.width;};Element.setStyle(this.update,{top:'-999px',left:'-999px',width:tw,height:'auto'});Element.show(this.update);var ph=this.update.offsetHeight;Element.hide(this.update);var pt=tt+th;var of;if((Position.page(this.text)[1]+th+ph<=wh)||(tt-ph<0)){pt=tt+th;of=th;}else{pt=tt-ph;of=-ph;};Element.setStyle(this.update,{top:pt+'px',left:tl+'px',width:tw,height:'auto'});if(ca.isIE){if(this.update.filters.length==0)this.update.style.filter="filter: progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#c0c0c0', Positive='true') progid:DXImageTransform.Microsoft.Fade(duration=0.25,overlap=1.0)";if(!this.visible){this.update.filters[1].apply();this.update.filters[1].play();}};if(this.status=='on'){Element.show(this.update);if(CAPXOUS.isIE)this.f();this.visible=true;}},hide:function(){if(this.visible){Element.hide(this.update);if(this.iframe)Element.hide(this.iframe);this.visible=false;}},startIndicator:function(){Element.addClassName(this.text,this.cls.style.wait);},stopIndicator:function(){Element.removeClassName(this.text,this.cls.style.wait);}};

⌨️ 快捷键说明

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