📄 tbra.js
字号:
/* * TBra * Copyright(c) 2007, taobao.com. * * Taobao JavaScript Framework base on YUI * T-Bra or TB-ra whatever you like name it... * */if(!Array.prototype.indexOf){Array.prototype.indexOf=function(obj,fromIndex){if(fromIndex==null){fromIndex=0;}else if(fromIndex<0){fromIndex=Math.max(0,this.length+fromIndex);}for(var i=fromIndex;i<this.length;i++){if(this[i]===obj)return i;}return-1;};}if(!Array.prototype.lastIndexOf){Array.prototype.lastIndexOf=function(obj,fromIndex){if(fromIndex==null){fromIndex=this.length-1;}else if(fromIndex<0){fromIndex=Math.max(0,this.length+fromIndex);}for(var i=fromIndex;i>=0;i--){if(this[i]===obj)return i;}return-1;};}if(!Array.prototype.forEach){Array.prototype.forEach=function(f,obj){var l=this.length;for(var i=0;i<l;i++){f.call(obj,this[i],i,this);}};}if(!Array.prototype.filter){Array.prototype.filter=function(f,obj){var l=this.length;var res=[];for(var i=0;i<l;i++){if(f.call(obj,this[i],i,this)){res.push(this[i]);}}return res;};}if(!Array.prototype.map){Array.prototype.map=function(f,obj){var l=this.length;var res=[];for(var i=0;i<l;i++){res.push(f.call(obj,this[i],i,this));}return res;};}if(!Array.prototype.some){Array.prototype.some=function(f,obj){var l=this.length;for(var i=0;i<l;i++){if(f.call(obj,this[i],i,this)){return true;}}return false;};}if(!Array.prototype.every){Array.prototype.every=function(f,obj){var l=this.length;for(var i=0;i<l;i++){if(!f.call(obj,this[i],i,this)){return false;}}return true;};}Array.prototype.contains=function(obj){return this.indexOf(obj)!=-1;};Array.prototype.copy=function(obj){return this.concat();};Array.prototype.insertAt=function(obj,i){this.splice(i,0,obj);};Array.prototype.insertBefore=function(obj,obj2){var i=this.indexOf(obj2);if(i==-1)this.push(obj);elsethis.splice(i,0,obj);};Array.prototype.removeAt=function(i){this.splice(i,1);};Array.prototype.remove=function(obj){var i=this.indexOf(obj);if(i!=-1)this.splice(i,1);};TB={};TB.common={trim:function(str){return str.replace(/(^\s*)|(\s*$)/g,'');},escapeHTML:function(str){var div=document.createElement('div');var text=document.createTextNode(str);div.appendChild(text);return div.innerHTML;},unescapeHTML:function(str){var div=document.createElement('div');div.innerHTML=str.replace(/<\/?[^>]+>/gi,'');return div.childNodes[0]?div.childNodes[0].nodeValue:'';},toArray:function(list,start){var array=[];for(var i=start||0;i<list.length;i++){array[array.length]=list[i];}return array;},applyConfig:function(obj,config){if(obj&&config&&typeof config=='object'){for(var p in config){if(!YAHOO.lang.hasOwnProperty(obj,p))obj[p]=config[p];}}return obj;}};(function(){var ua=navigator.userAgent.toLowerCase();isOpera=(ua.indexOf('opera')>-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);TB.bom={isGecko:(ua.indexOf('gecko')!=-1),isOpera:(ua.indexOf('opera')!=-1),isSafari:(ua.indexOf('safari')!=-1),isIE:(ua.indexOf('msie')!=-1)&&!this.isOpera,isIE6:(ua.indexOf('msie 6')!=-1)&&!this.isOpera,getCookie:function(name){var value=document.cookie.match('(?:^|;)\\s*'+name+'=([^;]*)');return value?unescape(value[1]):'';},setCookie:function(name,value,expire,domain,path){value=escape(value);value+=(domain)?'; domain='+domain:'';value+=(path)?"; path="+path:'';if(expire){var date=new Date();date.setTime(date.getTime()+(expire*86400000));value+="; expires="+date.toGMTString();}document.cookie=name+"="+value;},removeCookie:function(name){setCookie(name,'',-1);},pickDocumentDomain:function(){var da=location.hostname.split('.'),len=da.length;var deep=arguments[0]||(len<3?0:1);if(deep>=len||len-deep<2)deep=len-2;return da.slice(deep).join('.')+(location.port?':'+location.port:'');}}})();TB.form={};TB.form.CheckboxGroup=new function(){var Y=YAHOO.util;var defConfig={checkAllBox:'CheckAll',checkOnInit:true}var getChecked=function(o,i){return o.checked;}var setChecked=function(o,i){o.checked=true;}var setUnchecked=function(o,i){o.checked=false;}this.attach=function(checkboxGroup,config){config=TB.common.applyConfig(config||{},defConfig);var checkboxes=[];if(checkboxGroup){if(checkboxGroup.length)checkboxes=TB.common.toArray(checkboxGroup);elsecheckboxes[0]=checkboxGroup;}var checkAllBox=Y.Dom.get(config.checkAllBox);var handler={_checkedBoxCount:0,onCheck:new Y.CustomEvent('onCheck',this,false,Y.CustomEvent.FLAT),isCheckAll:function(){return this._checkedBoxCount==checkboxes.length;},isCheckNone:function(){return this._checkedBoxCount==0;},isCheckSome:function(){return this._checkedBoxCount!=0;},isCheckSingle:function(){return this._checkedBoxCount==1;},isCheckMulti:function(){return this._checkedBoxCount>1;},toggleCheckAll:function(){if(checkboxes.length==0){if(checkAllBox&&checkAllBox.type=='checkbox')checkAllBox.checked=0;return false;}var allChecked=checkboxes.every(getChecked);checkboxes.forEach(allChecked?setUnchecked:setChecked);handler._checkedBoxCount=(allChecked)?0:checkboxes.length;checkboxes.forEach(function(o){handler.onCheck.fire(o);});},toggleChecked:function(checkbox){checkbox.checked=!checkbox.checked;doCheck();handler.onCheck.fire(checkbox);},getCheckedBoxes:function(){return checkboxes.filter(getChecked);}}var doCheck=function(){var checkedBoxes=checkboxes.filter(getChecked);if(checkAllBox&&checkAllBox.type=='checkbox'){if(checkedBoxes.length==0){checkAllBox.checked=0;}else{checkAllBox.checked=(checkedBoxes.length==checkboxes.length);}}handler._checkedBoxCount=checkedBoxes.length;}var clickHandler=function(ev){var checkbox=Y.Event.getTarget(ev);doCheck();handler.onCheck.fire(checkbox);return true;}if(config.onCheck&&YAHOO.lang.isFunction(config.onCheck))handler.onCheck.subscribe(config.onCheck,handler,true);Y.Event.on(checkboxes,'click',clickHandler);if(checkAllBox){Y.Event.on(checkAllBox,'click',handler.toggleCheckAll);}if(config.checkOnInit){doCheck();var checkOnInit=function(){checkboxes.forEach(function(o){handler.onCheck.fire(o);});}setTimeout(checkOnInit,10);}return handler;}}TB.widget={};TB.widget.SimpleTab=new function(){var Y=YAHOO.util;var defConfig={eventType:'click',currentClass:'Current',tabClass:'',autoSwitchToFirst:true,stopEvent:true,delay:0.3};var getImmediateDescendants=function(p){var ret=[];if(!p)return ret;for(var i=0,c=p.childNodes;i<c.length;i++){if(c[i].nodeType==1)ret[ret.length]=c[i];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -