⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tool.js

📁 上传的控件
💻 JS
字号:
/*
说明: 一个全局对象,它负责所有共用的方法和对象的创建工作
作者:吴少刚
项目组:商格里拉项目组
创建日期:2006-11-21
*/


var Tool = new Object();

Tool = 
{
    
    findPosX: function(obj){
        var curleft = 0;
        if (obj.offsetParent) {
            while (obj.offsetParent) {
                curleft += obj.offsetLeft;
                obj = obj.offsetParent;
            }
        } else if (obj.x) curleft += obj.x;
        return curleft;    
    },    

    findPosY: function(obj){
        var curtop = 0;
        if (obj.offsetParent) {
            while (obj.offsetParent) {
                curtop += obj.offsetTop;
                obj = obj.offsetParent;
            }
        } else if (obj.y) curtop += obj.y;
        return curtop;    
    },    

    /*
    取得页面滚动的XY座标值
    */
    getScrollXY:  function()
    {
	    var scrollY = 0 , scrollX = 0; 
	    if (typeof window.pageYOffset != 'undefined') { 
		    scrollX = window.pageXOffset;
	   	    scrollY = window.pageYOffset; 
	    } 
	    else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') { 
		    scrollX = document.documentElement.scrollLeft;		 
	   	    scrollY = document.documentElement.scrollTop; 
	    } 
	    else if (typeof document.body != 'undefined') { 
		    scrollX = document.body.scrollLeft;
	   	    scrollY = document.body.scrollTop; 
	    } 
	    return {left:scrollX,top:scrollY}
    },
    //取得浏览器版本
    getBrowserType: function()
    {
      var _platform = null;
	  if (typeof(navigator) == "undefined")
	   {
		   return "not-browser";
	   }
        var ua = navigator.userAgent.toLowerCase();
        if (/msie/i.test(ua))
        {
            if (/msie 6/i.test(ua))
            {
	            _platform = "ie6";
            }
            else if (/msie 5\.5/i.test(ua))
            {
	            _platform = "ie5.5";
            }
            else if (/msie 5\.[^5]/i.test(ua))
            {
	            _platform = "ie5";
            }
            else
            {
	            _platform = "ie";
            }
            //isIE = true;
        }
        else if (/gecko/i.test(ua))
        {
            _platform = "moz";
           // isMoz = true;
        }
        else if (/opera/i.test(ua))
        {
            _platform = "opera";
           // isPoera = true;
        }
        else
        {
            _platform = "other";
            //isOther = true;
        }
        return _platform;  
    },   
   
      
     /*事件处理类,所有相关的方法都要集中到这里        
     */
     EventUtil: {
        /*为控件附加事件方法
        oTarget:事件对象
        sEventType:事件类型
        fnhandler:事件处理器
        */
        $ADE: function(oTarget,sEventType,fnHandler){

           Event.observe(oTarget,sEventType,fnHandler,false);
        
        },
        /*移除控件的事件*/
        $RME: function(oTarget,sEventType,fnHandler){

               Event.stopObserving(oTarget,sEventType,fnHandler,false)
        },
        /* 格式化事件,由于事件的属性在DOM和IE中有所区别,这样可以把各属性统一起来
         * 使用注意:必须在另一个能获得event对象引用的方法中使用  
         */
        FormatEvent: function(oEvent){
            if(G.Browser.isIE)
            {
                oEvent.charCode = oEvent.type == "keypress"?oEvent.keyCode:0;
                oEvent.eventPhase = 2;//此属性代表事件的阶段:0-捕获阶段,1-在目标上, 2-冒泡阶段
                oEvent.isChar = (oEvent.charCode > 0);
                oEvent.pageX = oEvent.clientX + document.body.scrollLeft;//shubiao相对于页面的X座标
                oEvent.pageY = oEvent.clientY + document.body.scrollTop;
                oEvent.preventDefault = function(){
                    this.returnValue  = false;//阻止事件的默认行为.如事件oncontextmenu发生时,不让用户使用上下文菜单
                };
                if(oEvent.type == "mouseout"){
                    oEvent.relatedTarget = oEvent.toElement;//表示正在进入的元素
                }else if(oEvent.type == "mouseover"){
                    oEvent.relatedTarget = oEvent.fromElement;//表示所离开的元素                    
                }
                
                oEvent.stopPropagation = function(){
                    this.cancelBubble = true;   //阻止事件的冒泡
                };
                
                return oEvent;               
                   
            }       
        },
        
        getEvent: function(){
            if(window.event){
                return this.FormatEvent(window.event);//如果是IE事件则格式化事件
            }else{
                return G.EventUtil.getEvent.caller.arguments[0];
            }
        }
     },
     
    ProFile:{ 
         //修复图片,增加效果
        fixImage: function(img, width, height) {
           
           if (!G.Browser.IsIE)
              return;

           var currentSrc = img.src;

           var imgStyle = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + currentSrc + "', sizingMethod='scale')";
           img.src = 'images/clearpixel.gif';
           img.style.width  = width + "px";
           img.style.height = height + "px";
           img.style.filter =  imgStyle;
        },
        
         
         //检测是否是有效的图片文件
         CheckValidPic:function(fileName,maxSize){
                var str = "";
                var thisPic = new Image();
                thisPic.src = fileName;
                if(thisPic.src=="") str = '请选择您要上传的图片';
                else{
                      var picSize = thisPic.fileSize/1024;
                      if(picSize>maxSize) str = '上传的图片不要大于'+maxSize+'KB,您的图片有'+picSize+'KB';
                      else{
                           var sPic = thisPic.src.split(".");
                           var pf = sPic[sPic.length-1].toLowerCase();
                           str = '未知的图片格式!';
                           var picF = new Array("gif","jpg","jpeg","bmp");
                           for (var i=0;i<picF.length;i++){
                                if (pf==picF[i]){
                                     str = "";
                                     break;
                                    }
                                }
                            }
                    }
                 return str;

         },
         //获得路径中的文件名
         GetFileName:function(path)
         {
            var p = path.lastIndexOf("\\");
            if(p>0)
                return path = path.substr(p+1);
            else
                return path;
            return "";         
         }
     },
    //把对象定位到指定的对象旁边显示,这两个参数对象都是DIV控件
    //传入参数:CurObj=要定位的对象 TargetObj=目标对象 两个对象都是div对象
    PosToFather: function(CurObj,TopTargetObj,leftTargetObj){
            CurObj.style.position = "absolute";
            CurObj.style.left = "0px";  
            CurObj.style.top = "0px";
            
            if(isNaN(TopTargetObj))//typeof TopTargetObj != "string"&&typeof leftTargetObj!="string")
            {
                CurObj.style.left =   (this.findPosX(leftTargetObj) + parseInt(leftTargetObj.clientWidth)) + 5 + "px";//可能要加菜单的客户端宽度
                CurObj.style.top = (this.findPosY(TopTargetObj) - parseInt(TopTargetObj.clientHeight) - 3) + "px"; 
                
            }
            else
            {
                CurObj.style.left = leftTargetObj + "px";//可能要加菜单的客户端宽度
                CurObj.style.top = TopTargetObj + "px"; 
                
            }         
     },
    //从JS文件载入JS对象,一般这种情况就是编辑模板类的载入    
    //传入参数:FileURL 
    LoadJSObj: function(TMPURL,FatherObj,SucessHandler)
    {
       //用ajax动态获取JS文件对象成功
       //new  Ajax.Request(TMPURL,{method:'get',parameters:null,onComplete:SucessHandler.bind(FatherObj)})
       G_RequestObj.send(TMPURL,null,SucessHandler.bind(FatherObj),"get");
         //URL,params,SuccessFunc,Method
        
    } ,
    
    
    //转换成HTML编码
   htmlEncode: function(text) {
	return text.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    }  

    
}
if(!browser)
  var browser = Tool.getBrowserType();

//浏览器特性
Tool.Browser={                  
            isIE: /ie.*/g.test(browser),//|(typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined'),            
            isMoz:/moz.*/g.test(browser),
            isOpera:/opera.*/g.test(browser),
            isFirefox:(navigator.userAgent.toLowerCase().indexOf("firefox")!=-1),
            isOther:/other.*/g.test(browser)  
  } 


if (Tool.Browser.isMoz) {
	HTMLElement.prototype.removeNode = function() {
		this.parentNode.removeChild(this);
	}
}
  
//页面上有关HTML的操作方法  
Tool.HTMLPro = {
    //把一段html代码插入指定的对象最后面
    insertBottom:function(pObj, pContent)
    {
	    var tElement = $(pObj);
	    if(tElement.insertAdjacentHTML)
	    {			
		    if(tElement.tagName == 'TABLE')
		    {
			    //在表格中不能直接以HTML的方式把一行插入进到, 所以上面的方法不行
			    var tDiv=document.createElement("div"),tRows;
			    tDiv.innerHTML = "<table>"+pContent+"</table>"
			    tRows= tDiv.childNodes[0].tBodies[0].rows;
			    while(tRows.length>0){
				    pObj.tBodies[0].appendChild(tRows[0])
			    }
		    }else
		    {
			    tElement.insertAdjacentHTML('beforeEnd', pContent);	
		    }
		    tRows = null;
		    tDiv = null;
	    }else
	    {
		    var tRange = tElement.ownerDocument.createRange();//系统对象				
  		    initializeRange(tRange,tElement);//初始化范围对象				
		    insertContent([tRange.createContextualFragment(pContent)],tElement);
		    tRange = null;
	    }
    },


    initializeRange:function(pRange,pElement){
        pRange.selectNodeContents(pElement);
        pRange.collapse(pElement);
    },

    insertContent:function(fragments,pElement) {
        fragments.each((function(fragment) {	
          pElement.appendChild(fragment);
        }).bind(this));
    }
}  
  

//指定控件在页面上滑动
//原理:从原始宽度以加速度的形式到指定的值,
//然后再以指定的加速度的形式停止到指定的宽度
//传入参数:MoveObj=移动对象 ObjWidth= 对象的原始宽度,AcceleValue=开始递增的值
Tool.SlideObj = function(MoveObj,ObjWidth,AcceleValue)
{
     MoveObj = $(MoveObj);
     if(ObjWidth <= MoveObj.clientWidth)
     {
           window.clearTimeout();
           MoveObj.style.width = ObjWidth + "px"; 
     }
     else
     {
        MoveObj.style.width = MoveObj.clientWidth + AcceleValue + "px";
        window.setTimeout("G.SlideObj('"+MoveObj.id +"',"+ObjWidth+","+AcceleValue+")", 10);
     }     
}


//*********************************************页面上显示数据的方法**********************//
Tool.DisplayInfo = function(PageObj,Info){
    
    var pageobj = $(PageObj);
    pageobj.innerHTML = Info;
}


//传入参数:URL=请求地址,params=参数,Method=Get或POST asynchronous=同步异步,SuccessFunc=成功返回处理方法 FailureFunc=失败处理
Tool.send = function(URL,params,Method,asynchronous,SuccessFunc,FailureFunc){
   if(FailureFunc == null)
   {
        FailureFunc = function(response){
            alert('请求出错!');
        }
   } 
   //对成功后的统一再次转发,可以处理成功后的一些事情
   var InsideSuccessFunc = function(response)
   {
        SuccessFunc(response);
   }
    
   if(typeof URL != "undefined"&&URL != "")
     new  Ajax.Request(URL,{method:Method,asynchronous:true,parameters:params,onComplete:InsideSuccessFunc,onFailure:FailureFunc});
   
}









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -