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

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()
    }
}

(0)

相关推荐

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

    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,"")

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

    复制代码 代码如下: function user_login(){     var l     createDlg("dlgLogin","用户登录",260,170)     l="<form name=fmLogin action='handle_user.asp?cmd=login'>"     l+="<span style=position:absolute;left:30;top:35>昵称:<

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

    复制代码 代码如下: function createDlg(dlgID,title,w,h,isSetPos){     var l,i,p,dlg     if($(dlgID)!=null)         $(dlgID).outerHTML=""     $sys.dlgDepth=($sys.dlgDepth||9000)     l="<div id='"+dlgID+"' style=position:absolute;z-index:

  • 超强推荐的js编程中的简洁写法收集

    举个例子,比如数据a,一般访问每个数据会用 for(var x=0;x<a.length;x++) {      alert(a[x]) } 简洁的写法是 for(var x in a) {      alert(a[x]) } 新建数组的简单写法 d=[1,2,3,3,4,3,2,2] 或 d={1,2,3,3,4,3,2,2} 如果字符串,用 d="asfwf,asdf,w,x,,a,sfw,,x,asfw,".split(",") 更简单取字符串c第二个

  • 幻宇的层模拟窗口效果-提供演示和下载

    看到有人问起幻宇的层模拟窗口效果,所以抽了点时间提取出来了,仅学习之用,请幻宇不要见怪!演示地址:http://www.gzfangzi.com/demo/DivWin/divWin.htm 下载此文件

  • Prototype使用指南之base.js

    base.js中包含下面的内容  类的创建与继承: Class.create(): 创建一个类,例如 person=Class.create() Object.extend(destination, source): 把source中方法属性copy到destination(使用for propertyin source),需要注意的是,javascript中除了基本类型(Number, Boolean)外都是引用类型,所以这种copy一般只是copy引用而已,destination和sourc

  • require.js深入了解 require.js特性介绍

    现在,Require.js是我最喜欢的Javascript编程方式.它可以使代码化整为零,并易于管理.而Require.js Optimizer能帮助我们将一个较大的应用分散成多个较小的应用,并通过依赖串联起来,最后在编译打包时合并起来.这些原因促使我们使用require.js. 那么,让我们来看看require.js有什么牛逼的特性吧! 与CommonJS兼容 AMD (异步模块定义规范) 出现自CommonJS工作组.CommonJS旨在创造Javascript的生态系统. CommonJS

  • JS库之Three.js 简易入门教程(详解之一)

    开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的原生接口从这款框架入手是一个不错的选择. 博主目前也在学习three.js,发现相关资料非常稀少,甚至官方的api文档也非常粗糙,很多效果需要自己慢慢敲代码摸索.所以我写这个教程的目的一是自己总结,二是与大家分享. 本篇是系列教程的第一篇:入门篇.在这篇文章中,我将以一个简单的demo为例,阐述three.js的基本配置方法.学完这篇文章

  • js eval函数使用,js对象和字符串互转实例

    JavaScript eval() 函数 JavaScript 全局函数 定义和用法 eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行. 如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执行 Javascript 语句. 语法 eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. <!DOCTYPE html> <htm

  • JS框架之vue.js(深入三:组件1)

    这个要单独写,原文是这么描述vue的组件的:组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 这个特性我感觉比较难理解,一步步来,看看组件到底是个什么东西? 1.举个栗子 //model层: // 通过extend方式定义一个Vue组件 var MyComponent = Vue.exten

随机推荐