Posted in Javascript onDecember 23, 2006
base.js
browser_init() function browser_init(){ window.isIE=navigator.appName.indexOf("Microsoft")==0 window.$sys={} window.$my={} String.prototype.trim=function(){return this.replace(/(^[\s]*)|([\s]*$)/g,"")} String.prototype.inc=function(s1,s2){if(s2==null){s2=","};return (s2+this+s2).indexOf(s2+s1+s2)>-1?1:0} String.prototype.lenB=function(){return this.replace(/[^\x00-\xff]/g,"**").length} String.prototype.leftB=function(len,isOmit){var s;s=this.replace(/\*/g," ").replace(/[^\x00-\xff]/g,"**");if(s.length>len&&isOmit){len-=3};return this.slice(0,s.slice(0,len).replace(/\*\*/g," ").replace(/\*/g,"").length)+(s.length>len&&isOmit?"...":"")} String.prototype.getVar=function(str,def){if(this.inc(str,";"))return 1;var a=this.match(new RegExp("(^|;)"+str+":[^;]*"));return a==null||str==""?(def==null?"":def):a[0].replace(";","").slice(str.length+1)} String.prototype._slice="".slice String.prototype.slice=function(n1,n2){var v,b1=typeof(n1)=="number",b2=typeof(n2)=="number";if(!b1||typeof(n2)=="string"){v=eval("this._slice("+(b1?n1:this.indexOf(n1)+(n2==null?1:0)+(this.indexOf(n1)==-1?this.length:0))+(n2==null?"":(b2?n2:(this.indexOf(n2)==-1?"":","+this.indexOf(n2))))+")")}else{v=eval("this._slice(n1"+(n2==null?"":","+n2)+")")}return v} Array.prototype.parseInt=function(){var i,count=this.length;for(i=0;i<count;i++){this[i]=parseInt(this[i])}} Array.prototype.remove=function(item){var i,count=this.length;for(i=0;i<count;i++){if(this[i]==item){this.splice(i,1);i--;count--}}} Array.prototype.plus=function(item){for(var i=0;i<this.length;i++){if(this[i]==item){return}}this.push(item)} window.$=function(obj){return typeof(obj)=="string"?document.getElementById(obj):obj} window.ow=function(win){return $(win).contentWindow} window.oDel=function(obj){if($(obj)!=null){$(obj).parentNode.removeChild($(obj))}} window.oHide=function(obj){if($(obj)!=null){$(obj).style.visibility="hidden"}} window.oShow=function(obj){if($(obj)!=null){$(obj).style.visibility=""}} window.oFocu=function(obj){window.tempObj=$(obj);window.setTimeout("try{window.tempObj.focus()}catch(e){}",10)} window.fmCheck=function(){return true} $sys.url=location.href $sys.path=$sys.url.slice(0,"?").slice(0,$sys.url.lastIndexOf("/")+1) document.write("<body></body>") if(document.all){ document.execCommand("BackgroundImageCache",false,true) } else{ HTMLElement.prototype.attachEvent=function(type,foo){this.addEventListener(type.slice(2),foo,false)} HTMLElement.prototype.contains=function(node){if(!node)return false;do if(node==this){return true}while(node=node.parentNode){return false}} HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){var r=this.ownerDocument.createRange();r.setStartBefore(this);var df=r.createContextualFragment(sHTML);this.parentNode.replaceChild(df,this);return sHTML;}) HTMLElement.prototype.__defineGetter__("innerText",function(){var r = this.ownerDocument.createRange();r.selectNodeContents(this);return r.toString()}) Event.prototype.__defineGetter__("srcElement",function(){var node=this.target;while(node.nodeType!=1){node=node.parentNode}return node}) Event.prototype.__defineGetter__("fromElement",function(){return this.relatedTarget}) Event.prototype.__defineGetter__("toElement",function(){return this.relatedTarget}) Event.prototype.__defineGetter__("offsetX",function(){return this.layerX}) Event.prototype.__defineGetter__("offsetY",function(){return this.layerY}) } drag_init() thd_init() document_onload() } function document_onload(){ var l l="<div id=mcSystem style='position:absolute;left:-9000px;top:0'>" l+="<iframe id=wForm name=wForm onload=fmWinOnLoad(this)></iframe>" l+="<button id=btSysFocu></button>" l+="</div>" insHtm(document.body,l) document.body.onmouseover=document.body.onmouseout=document.body.onmousedown=document.body.onmouseup=function(e){ var ee e=e||event ee=e.srcElement if(e.type=="mouseover"&&(ee.tagName=="A"||ee.tagName=="INPUT"||ee.tagName=="LABEL")&&!ee.hideFocus) ee.hideFocus=true } document.body.onkeydown=function(e){ var ee e=e||event ee=e.srcElement if(ee.tagName=="INPUT"&&e.keyCode==13&&isIE&&ee.form!=null){ if(ee.form.btSubmit!=null) ee.form.btSubmit.click() } } if(window.body_onload!=null) body_onload() } function drag_init(){ window.$drag={} window.startDrag=function(obj,e){ $drag.obj=$(obj) $drag.x0=$drag.obj.offsetLeft $drag.y0=$drag.obj.offsetTop $drag.sx=e.clientX $drag.sy=e.clientY if(document.all) $drag.obj.setCapture() } document.onmouseup=function(){ if($drag.obj==null) return if(document.all) $drag.obj.releaseCapture() $drag.obj=null } document.onmousemove=function(e){ var x,y if($drag.obj==null) return e=e||event x=Math.min(e.clientX-$drag.sx+$drag.x0,document.body.scrollLeft+document.body.clientWidth-$drag.obj.offsetWidth) y=Math.min(e.clientY-$drag.sy+$drag.y0,document.body.scrollTop+document.body.clientHeight-$drag.obj.offsetHeight) x=Math.max(x,0) y=Math.max(y,document.body.scrollTop) $drag.obj.style.left=x+"px" $drag.obj.style.top=y+"px" } } function thd_init(){ window.$thd={} $thd.items=[] $thd.index=0 $thd.push=function(foo,interval){ foo.interval=interval==null?1:interval $thd.items.push(foo) } $thd.remove=function(foo){ $thd.items.remove(foo) } $thd.run=function(){ var ol=$thd.items,i for(i=0;i<ol.length;i++){ if($thd.index%ol[i].interval==0||ol[i].start==null){ ol[i].start=1 ol[i]() } } $thd.index++ window.setTimeout("$thd.run()",10) } $thd.run() } function $x(obj,op){ var o,x=0 op=op||document.body do{ o=o==null?$(obj):o.parentNode if(op==o) break x+=o.offsetLeft }while(op.contains(o)) return x } function $y(obj,op){ var o,y=0 op=op||document.body do{ o=o==null?$(obj):o.parentNode if(op==o) break if(o.tagName=="TR") continue y+=o.offsetTop-o.scrollTop }while(op.contains(o)) return y } function getPngBg(url){ return document.all&&/\.png/i.test(url)?"filter:progid:dximagetransform.microsoft.alphaimageloader(src="+url+",sizingMethod=scale)":"background:url("+url+")" } function setHtm(op,str){ op=$(op) if(op.tagName=="TABLE"){ if(op.tBodies.length==0) op.appendChild(document.createElement("tbody")) op.replaceChild(document.createElement("tbody"),op.tBodies[0]) } else op.innerHTML="" insHtm(op,str) } function insHtm(op,str,oRefer){ var bx=document.createElement("div"),ol,i op=$(op) if(op.tagName=="TABLE"){ bx.innerHTML="<table>"+str+"</table>" ol=bx.childNodes[0].tBodies[0].rows if(op.tBodies.length==0) op.appendChild(document.createElement("tbody")) while(ol.length>0){ op.tBodies[0].insertBefore(ol[0],oRefer==null?null:oRefer) } } else{ op.insertBefore(bx,oRefer==null?null:oRefer) bx.outerHTML=str } btBinding(op) fmBinding(op) } function btBinding(op){ var ol,i,a,bg ol=(op||document.body).getElementsByTagName("SPAN") for(i=0;i<ol.length;i++){ if(ol[i].getAttribute("type")!="button"||ol[i].getAttribute("bg")==null) continue bg=ol[i].getAttribute("bg") ol[i].removeAttribute("bg") a=ol[i].getAttribute("pos").split(",") ol[i].style.cssText="position:absolute;overflow:hidden;left:"+a[0]+";top:"+a[1]+";width:"+a[2]+";height:"+a[3] ol[i].innerHTML="<img src='"+bg+"'><button style=position:absolute;left:-9000;top:0></button>" ol[i].onmouseover=function(){this.scrollTop=this.offsetHeight} ol[i].onmouseout=function(){this.scrollTop=0} ol[i].onmousedown=function(){this.scrollTop=this.offsetHeight*2} ol[i].onmouseup=function(){this.scrollTop=this.offsetHeight} } } function fmBinding(op){ var ol,i,sResult,foo ol=(op||document.body).getElementsByTagName("FORM") for(i=0;i<ol.length;i++){ if(ol[i].onsubmit!=null) continue insHtm(ol[i],"<input name=btSubmit type=submit style=visibility:hidden>",ol[i].firstChild) ol[i].onkeydown=function(e){ e=e||event if(e.keyCode==13) return false } ol[i].onsubmit=function(e){ var fm=this if(!fmCheck(fm)) return false sResult=1 try{ foo=fm.getAttribute("onbeforeload") if(typeof(foo)=="function") sResult=foo() else if(typeof(foo)=="string") eval(foo.replace(/return /,"sResult=")) }catch(e){alert(e.description)} if(sResult==false) return false if(fm.method=="post"){ fm.target="wForm" $sys.fmWinType=fm return true } loadXml(fmv(fm),function(xml){ var foo=fm.getAttribute("onload") if(typeof(foo)=="function") foo(xml) else if(typeof(foo)=="string") eval(foo) }) return false } } } function fmWinOnLoad(win){ var xml,str,foo,error if(document.all){ str=win.contentWindow.document.body.innerText.replace(/\n[\s]*\-/g,"\n") if(str=="") return if(!/\<[^\>]+/.test(str)){ alert(str) return } str=str.slice(1) xml=createXml(str) } else{ if((win.contentWindow.document+"").indexOf("XML")==-1) return xml=win.contentWindow.document.documentElement } error=ndv(xml,"error") if(error!=null) return alert(error) foo=$sys.fmWinType.onload if(typeof(foo)=="function") foo(xml) else if(typeof(foo)=="string") eval(foo) } function fmv(fm){ var i,f,v,l l=fm.action for(i=0;i<fm.length;i++){ if(!"INPUT,TEXTAREA,SELECT".inc(fm[i].tagName)||"submit,button".inc(fm[i].type)) continue v=fm[i].value.trim() f=fm[i].getAttribute("postName")||fm[i].name if(f==""||(fm[i].type=="radio"&&!fm[i].checked)||fm[i].readOnly==true) continue if(fm[i].type=="checkbox") v=fm[i].checked?v.replace(/^on$/g,1):0 l+="&"+f+"="+escape(v) } if(l.indexOf("?")==-1) l=l.replace("&","?") return l } function createXml(str){ if(isIE){ var xml=new ActiveXObject("Microsoft.XMLDOM") xml.loadXML(str) xml.setProperty("SelectionLanguage","XPath") } else var xml=new DOMParser().parseFromString(str,"text/xml") return xml.documentElement } function getXmlNode(node,expr,isAll){ var ol if(isIE) ol=node.selectNodes(expr) else{ var xpe=new XPathEvaluator(),nsr,res,ol=[],r nsr=xpe.createNSResolver(node.ownerDocument==null?node.documentElement:node.ownerDocument.documentElement) res=xpe.evaluate(expr,node,nsr,0,null) while(r=res.iterateNext()){ r.text=r.textContent ol.push(r) } } return isAll?ol:ol[0] } function ndv(node,expr,def){ var ol,s,$0,r if(expr.indexOf("@")==0) return node.getAttribute(expr.slice(1))||def ol=getXmlNode(node,unescape(expr.slice(0,"?"))) if(ol==null) return if(ol.length==0) return def r=$0=ol.length==0?def:unescape(ol.text) return r } function loadXml(url,foo){ var xh,method,ondataok xh=isIE?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest() method=url.indexOf(".xml")?"GET":"POST" xh.open(method,url,true) xh.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") xh.send(method=="POST"?url.slice("?"):null) ondataok=function(){ var xml=xh.responseXML,error if(xml!=null) xml=xh.responseXML.documentElement if(xml==null){ window.clipboardData.setData("text",$sys.path+url) alert("载入xml数据出错!") return } error=ndv(xml,"error") if(error!=null){ alert(error) return } foo(xml) } if(xh.readyState==4) ondataok() xh.onreadystatechange=function(){ if(xh.readyState==4) ondataok() } }
脚本吧 - 幻宇工作室用到js,超强推荐base.js
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@