脚本吧 - 幻宇工作室用到js,超强推荐base.js


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() 
    } 
}
Javascript 相关文章推荐
基于jquery的地址栏射击游戏代码
Mar 10 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
Sep 22 Javascript
标题过长使用javascript按字节截取字符串
Apr 24 Javascript
一个简单的动态加载js和css的jquery代码
Sep 01 Javascript
javascript使用正则获取url上的某个参数
Sep 04 Javascript
学习JavaScript设计模式(单例模式)
Nov 26 Javascript
jQuery滚动新闻实现代码
Jun 26 Javascript
angularjs中ng-bind-html的用法总结
May 23 Javascript
Vue中如何实现轮播图的示例代码
Jul 27 Javascript
修改node.js默认的npm安装目录实例
May 15 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
Jan 21 Javascript
微信公众平台 发送模板消息(Java接口开发)
Apr 17 Javascript
实现复选框全选/全不选切换
Dec 23 #Javascript
Javascript实例教程(19) 使用HoTMetal(7)
Dec 23 #Javascript
Javascript实例教程(19) 使用HoTMetal(6)
Dec 23 #Javascript
Javascript实例教程(19) 使用HoTMetal(5)
Dec 23 #Javascript
Javascript实例教程(19) 使用HoTMetal(4)
Dec 23 #Javascript
Javascript实例教程(19) 使用HoTMetal(3)
Dec 23 #Javascript
Javascript实例教程(19) 使用HoTMetal(2)
Dec 23 #Javascript
You might like
Zend studio文件注释模板设置方法
2013/09/29 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
10条php编程小技巧
2015/07/07 PHP
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python实现求两个csv文件交集的方法
2017/09/06 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
微信小程序python用户认证的实现
2019/07/29 Python
python 动态调用函数实例解析
2019/10/21 Python
Python库安装速度过慢解决方案
2020/07/14 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
韩语专业本科生求职信
2013/10/01 职场文书
荷叶圆圆教学反思
2014/02/01 职场文书
函授本科自我鉴定
2014/02/04 职场文书
购房意向书
2014/04/01 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
个人政风行风自查自纠报告
2014/10/21 职场文书
个人工作总结范文2014
2014/11/07 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
单位考核聘任报告
2015/03/02 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
疾病证明书
2015/06/19 职场文书
《社戏》教学反思
2016/02/22 职场文书
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python
Python turtle实现贪吃蛇游戏
2021/06/18 Python