脚本吧 - 幻宇工作室用到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 日期对象Date扩展方法
May 30 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
Jan 11 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
基于Vue.js实现数字拼图游戏
Aug 02 Javascript
JS实现倒计时(天数、时、分、秒)
Nov 16 Javascript
wap手机端解决返回上一页的js实例
Dec 08 Javascript
jQuery Ajax实现跨域请求
Jan 21 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 Javascript
Vue-Cli中自定义过滤器的实现代码
Aug 12 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
JavaScript中的LHS和RHS分析详情
Apr 06 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
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
js DataSet数据源处理代码
2010/03/29 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
js重写方法的简单实现
2016/07/10 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
拖动时防止选中
2017/02/03 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
python实现读取并显示图片的两种方法
2017/01/13 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python 移动光标位置的方法
2019/01/20 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
台湾旅游网站:灿星旅游
2018/10/11 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
校园安全演讲稿
2014/05/09 职场文书
五一劳动节活动总结
2015/02/09 职场文书
护士个人年度总结范文
2015/02/13 职场文书
增值税发票丢失证明
2015/06/19 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android
python中if和elif的区别介绍
2021/11/07 Python
Java存储没有重复元素的数组
2022/04/29 Java/Android