脚本吧 - 幻宇工作室用到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 相关文章推荐
JavaScript CSS修改学习第二章 样式
Feb 19 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
May 19 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
Bootstrap表单使用方法详解
Feb 17 Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 Javascript
webpack+vue2构建vue项目骨架的方法
Jan 09 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
详解vue axios二次封装
Jul 22 Javascript
JavaScript实现简单轮播图效果
Dec 01 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
Apr 15 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
python中list列表的高级函数
2016/05/17 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
详解Python如何生成词云的方法
2018/06/01 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
五年级作文之成长
2019/09/16 职场文书