imfunction_utf8.js

来自「这篇文章主要用来说明获取设备表述的情况,希望大家可以得到帮助」· JavaScript 代码 · 共 1,274 行 · 第 1/5 页

JS
1,274
字号
_p.viewRect = {
    x:0,
    y:0,
    w:0,
    h:0,
    get: function(el, isupdate){
        el = typeof(el)=='string' ? this.getEl(el) : el;
        if( !el || el==window || el==document ){
            if (!!isupdate || !this.w)
                this._getViewPortRect();/*重新获取窗口参数*/
            return {x:this.x, y:this.y, w:this.w, h:this.h};
        }
        else{
            if( (document.compatMode=="BackCompat" && im_wdkUtil.Browser.msie) ||
                (document.compatMode=="CSS1Compat" && im_wdkUtil.Browser.msie56)
              ){ 
                return {x:this.getX(el), y:this.getY(el),w:this.getW(el), h:this.getH(el)};
            }else{
                this._getViewPortRect();
                var _x = this.getX(el) + this.x;
                var _y = this.getY(el) + this.y;
                return {x:_x, y:_y,w:this.getW(el), h:this.getH(el)};
            }
        }
    },
    _getViewPortRect: function(obj){
        this.x = window.pageXOffset ? window.pageXOffset :
                                    (document.documentElement&&document.documentElement.scrollLeft ? document.documentElement.scrollLeft :
                                    (document.body ? document.body.scrollLeft : 0) );
        
        this.y = window.pageYOffset ? window.pageYOffset :
                                    (document.documentElement&&document.documentElement.scrollTop ? document.documentElement.scrollTop :
                                    (document.body ? document.body.scrollTop : 0) );
        
        this.w = window.innerWidth ? window.innerWidth :
                                    (document.documentElement&&document.documentElement.clientWidth ? document.documentElement.clientWidth :
                                    (document.body ? document.body.clientWidth : 0) );
            
        this.h = window.innerHeight ? window.innerHeight :
                                    (document.documentElement&&document.documentElement.clientHeight ? document.documentElement.clientHeight :
                                    (document.body ? document.body.clientHeight : 0) );
    },
    getX:function(e){
        elm = typeof(e)=='string' ? this.getEl(e) : e;
        var offset=elm.offsetLeft;
        if(elm.offsetParent!=null) offset+=this.getX(elm.offsetParent);
        return offset;
    },
    getY:function(e){
        elm = typeof(e)=='string' ? this.getEl(e) : e;
        var offset=elm.offsetTop;
        if(elm.offsetParent!=null) offset+=this.getY(elm.offsetParent);
        return offset;
    },
    getW:function(el){
        return(el ? (el.offsetWidth || (el.style ? el.style.pixelWidth : 0) || 0) : 0);
    },
    getH:function(el){
        return(el ? (el.offsetHeight || (el.style ? el.style.pixelHeight: 0) || 0) : 0);
    },
    getEl:function(el){
        return(document.getElementById ? document.getElementById(el)
            : document.all ? document.all[el]
            : null);
    }
};
_p.createScript = function(scriptSrc){
    var im_head = document.getElementsByTagName("HEAD")[0];
    if(document.readyState!="complete" && im_wdkUtil.Browser.msie){ 
        window.setTimeout(function(){im_wdkUtil.createScript(scriptSrc);}, 1000);return;
    }else{
        var script = window.document.createElement("script");
        im_head.appendChild(script);
        script.type     = "text/javascript";
        script.language = "javascript";
        script.src      = scriptSrc;
        script.charset = "utf-8";
    }
    return true;
};
_p.createCSS = function(cssFile){
    var im_head = document.getElementsByTagName("HEAD")[0];
    var cssLink = document.createElement("link");
    im_head.appendChild(cssLink);
    cssLink.type= 'text/css';
    cssLink.rel = 'stylesheet';
    cssLink.href= cssFile;
}
_p.createDom = function(elDom, toElement){//elDom={name:"DIV"[,id:"",style:"",_class:"",title:"",click:"",mouseover:"",mouseout:""]}
    toElement = toElement ? toElement
                : document.getElementsByTagName ? document.getElementsByTagName("body")[0]
                : (document.body || null);
    if(typeof toElement.innerHTML != "undefined" && document.createElement && toElement.appendChild){
        if(/text/g.test(elDom.name.toLowerCase())){
            var _El = document.createTextNode(elDom.text);
        }else{
            var _El = document.createElement(elDom.name);
            for(var k in elDom){
                if(elDom[k]){
                    if(k=="className") _El.setAttribute("class", elDom[k]);
                    else _El.setAttribute(k, elDom[k]);
                }
            }
        }
        toElement.appendChild(_El);
        return _El;
    }else{
        toElement.innerHTML += '<' + elDom.name + (elDom.id ? ' id="' + elDom.id + '"' : '') + (elDom._class ? ' class="' + elDom._class + '"' : '') + (elDom.title ? ' title="' + elDom.title + '"' : '') + (elDom.style ? ' style="' + elDom.style + '"' : '') + (elDom.click ? ' onclick="' + elDom.click + '"' : '') + (elDom.mouseover ? ' onmouseover="' + elDom.mouseover + '"' : '') + (elDom.mouseout ? ' onmouseout="' + elDom.mouseout + '"' : '') + '></'+elDom.name+'>';
        var _childNodes = toElement.getElementsByTagName(elDom.name);
        return _childNodes[(_childNodes.length-1)];
    }
}
_p.insertHtml = function(where, el, html){
    where = where.toLowerCase();
    if(el.insertAdjacentHTML){
        switch(where){
            case "beforebegin":
                el.insertAdjacentHTML('BeforeBegin', html);
                return el.previousSibling;
            case "afterbegin":
                el.insertAdjacentHTML('AfterBegin', html);
                return el.firstChild;
            case "beforeend":
                el.insertAdjacentHTML('BeforeEnd', html);
                return el.lastChild;
            case "afterend":
                el.insertAdjacentHTML('AfterEnd', html);
                return el.nextSibling;
        }
    }
    var range = el.ownerDocument.createRange();
    var frag;
    switch(where){
        case "beforebegin":
            range.setStartBefore(el);
            frag = range.createContextualFragment(html);
            el.parentNode.insertBefore(frag, el);
            return el.previousSibling;
        case "afterbegin":
            if(el.firstChild){
                range.setStartBefore(el.firstChild);
                frag = range.createContextualFragment(html);
                el.insertBefore(frag, el.firstChild);
                return el.firstChild;
            }else{
                el.innerHTML = html;
                return el.firstChild;
            }
        case "beforeend":
            if(el.lastChild){
                range.setStartAfter(el.lastChild);
                frag = range.createContextualFragment(html);
                el.appendChild(frag);
                return el.lastChild;
            }else{
                el.innerHTML = html;
                return el.lastChild;
            }
        case "afterend":
            range.setStartAfter(el);
            frag = range.createContextualFragment(html);
            el.parentNode.insertBefore(frag, el.nextSibling);
            return el.nextSibling;
        }
}
_p.removeChildNodes = function(el, childNodetagName){
    if(!el) return;
    var Nodes = childNodetagName ? el.getElementsByTagName(childNodetagName) : el.childNodes;
    for(var i=0; i<Nodes.length;i++){
        var a = Nodes[i].attributes;
        for(var id in a){
            if(typeof(a[id])=="function"){
                if(im_wdkUtil.Browser.msie)
                    eval("el."+id+"=null");
                else
                    el.removeAttribute(id);
            }
        }
        this.removeChildNodes(Nodes[i], childNodetagName);
        el.removeChild(Nodes[i]);
    }
}
_p.cutText = function(str, len){
    var l = len*2; var t = 0, tl = 0, ol = 0;
    for(var i=0;i<l;i++){
        if(str.charCodeAt(i)>255) t += 2;
        else tl += 1;
        ol += 1;
        if(t + tl == l){return (str.substring(0,ol));break;}
        if(t + tl > l){return (str.substring(0,ol - 1) + " "); break;}
    }
}
_p.lenText = function(str){
    var t = 0;
    for(var i=0;i<str.length;i++){
        if(str.charCodeAt(i)>255) t += 2;
        else t += 1;
    }
    return t;
}
_p.disposeFlashObj = function(flashObj){
    //把 flash 暴露给 js 的所有方法清空
    if(!flashObj)
      return;
    for(var id in flashObj){
        if(typeof(flashObj[id]) == "function"){
            if(im_wdkUtil.Browser.msie)
                eval("flashObj."+id+"=null");//清除DOM对象上面绑定的脚本对象
            else
                flashObj.removeAttribute(id);
        }
    }
};
/*---class WdkUtil end---*/
im_initim();
im_initPopMenu();

//为CSDN专用接口函数
function im_csdnInit(){
  im_global.variable.siteid = "csdn";
  im_getIMOnlineStatus(im_global.variable.siteid);
  
  //im_wdkUtil.SetCookie("UserName", "lzp");
  //im_wdkUtil.SetCookie("_user_sid", "dsf231233122f");
  //im_wdkUtil.DelCookie("UserName");
  var userid = im_wdkUtil.GetCookie("UserName");
  if(!userid || userid.length==0)
    return;
  var username = userid;
  var sid = im_wdkUtil.GetCookie("_user_sid");
  im_runPresence("csdn", im_global.variable.siteid, userid, username, sid, "", "", "");
  
}
/*------interface-------*/
function im_getIMOnlineStatus(siteid, webchaturl, onlineuserurl){
    var _siteid = siteid;
	  im_global.variable.siteid = siteid;
    im_global.variable.webchatURL = webchaturl;
    im_global.variable.onlineuserURL = onlineuserurl;
    
    if(_siteid=="tianya" || _siteid=="tianya_v2"){
        im_global.cache.source += "tianya/";
        im_global.cache.init();
        im_global.cfg.chatWidth        = 472;
        im_global.cfg.chatHeight       = 452;
        im_global.cfg.IMWidth          = 218;
        im_global.cfg.IMHeight         = 490;
        im_global.win.fonttext = "天涯聊聊";
        im_global.win.fontcolor        = "#FFFFFF";
        im_global.win.tbfontcolor      = "#004499";
    }
    else if(_siteid=="cnmyspace"){
        im_global.cache.source += "cnmyspace/";
        im_global.cache.init();
        im_global.cfg.chatWidth        = 472;

⌨️ 快捷键说明

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