javascript 常用函数

来源:互联网 发布:新野美工设计培训中心 编辑:程序博客网 时间:2024/06/14 06:42

复制代码
/**获取元素到页面顶端的距离(出自jquery源码) */function getCoords(el) {    if (typeof el == 'string') {        el = Fid(el);    }    var box = el.getBoundingClientRect(),    doc = el.ownerDocument,    body = doc.body,    html = doc.documentElement,    clientTop = html.clientTop || body.clientTop || 0,    clientLeft = html.clientLeft || body.clientLeft || 0,    top = box.top + (self.pageYOffset || html.scrollTop || body.scrollTop) - clientTop,    left = box.left + (self.pageXOffset || html.scrollLeft || body.scrollLeft) - clientLeft        return {        'top' : top,        'left' : left    };};/*获取元素到页面顶端的document.documentElement.clientLeft ie6/7 下2px的bodrer */function getAbsPoint(e) {    if (typeof e == 'string') {        e = Fid(e);    }    var x = e.offsetLeft;    var y = e.offsetTop;    var de = document.documentElement;    while (e = e.offsetParent) { //在IE下offset对象是对当前元素到上一级元素的距离,FF则是正常的        x += e.offsetLeft;        y += e.offsetTop;        //需要加上元素自身的border, offsetTop 本身就包含margin        if (e && e != de && !Browser.isOpera) {            x += e.clientLeft;            y += e.clientTop; //ie6下设置元素宽度后才能到获取他的边框大小,如果不设置则下级取上级的时候会把上级的边框算进去(总体计算还是没有错)        }    }    return {        "left" : x,        "top" : y    };}
复制代码

 

复制代码
//浏览器类型检测var FBrowser=(function(){    var ua = navigator.userAgent;    var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';    return {      isIE:             !!window.attachEvent && window.ActiveXObject && !isOpera,      isOpera:          isOpera,      isSafari:         ua.indexOf('AppleWebKit/') > -1,      isFirefox:        ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,      MobileSafari:     /Apple.*Mobile.*Safari/.test(ua),      isChrome:         !!window.chrome,    };})();FBrowser.isIE6=FBrowser.isIE&&!window.XMLHttpRequest;FBrowser.isIE7=FBrowser.isIE&&!!window.XMLHttpRequest;
复制代码

 

复制代码
//document.documentMode ie8+以上显示浏览器版本var IE = (function(){    var ie =  !!window.ActiveXObject;         e = {            isIE: !!window.ActiveXObject,            isIE6: ie && !window.XMLHttpRequest,            isIE7: ie && window.XMLHttpRequest && document.documentMode == 7,            isIE8: ie && window.XMLHttpRequest && document.documentMode == 8,            isIE9: ie && window.XMLHttpRequest && document.documentMode == 9         }    return e;    })();
复制代码

 

 

复制代码
/**获取元素样式处理透明度、元素浮动样式的获取 ,结果带有单位*/function getStyle(elem, name) {    var nameValue = null;    if (document.defaultView) {        var style = document.defaultView.getComputedStyle(elem, null);        nameValue =  name in style ? style[name] : style.getPropertyValue(name);    } else {        var style = elem.style,        curStyle = elem.currentStyle;        //透明度 from youa        if (name == "opacity") {            if (/alpha\(opacity=(.*)\)/i.test(curStyle.filter)) {                var opacity = parseFloat(RegExp.$1);                                return opacity ? opacity / 100 : 0;            }            return 1;        }        if (name == "float") {            name = "styleFloat";        }        var ret = curStyle[name] || curStyle[camelize(name)];        //单位转换 from jqury        if (!/^-?\d+(?:px)?$/i.test(ret) && /^\-?\d/.test(ret)) {            var left = style.left,            rtStyle = elem.runtimeStyle,            rsLeft = rtStyle.left;            rtStyle.left = curStyle.left;            style.left = ret || 0;            ret = style.pixelLeft + "px";            style.left = left;            rtStyle.left = rsLeft;        }                nameValue = ret;    }        return nameValue === 'auto' ? '0px' : nameValue;}function uncamelize(s) {//将CSS属性名由驼峰式转为普通式    return s.replace(/[A-Z]/g,function (c) {        return '-'+c.charAt(0).toLowerCase();    });}function camelize(s) {//将CSS属性名转换成驼峰式    return s.replace(/-[a-z]/gi,function (c) {        return c.charAt(1).toUpperCase();    });}
复制代码

 

复制代码
function each( object, callback ) {        if ( undefined === object.length ){            for ( var name in object ) {                if (false === callback( object[name], name, object )) break;            }        } else {            for ( var i = 0, len = object.length; i < len; i++ ) {                if (i in object) { if (false === callback( object[i], i, object )) break; }            }        }    }
复制代码

 

复制代码
//获取scrolltopfunction getScrollTop(){    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;    return     scrollTop;}//设置scrolltopfunction setScrollTop(top){    document.documentElement.scrollTop = document.body.scrollTop = top;}
复制代码

 

 

复制代码
/**获取浏览器可视区域的尺寸*/function getBrowserSize(){    //在标准模式下用 documentElement, 在怪癖模式下用 body    return {        width:document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth,        height:document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight,    }}
复制代码

 

 

复制代码
/**获取页面大小*/function getPageSize(){    //ie下优先取 body    return {        width:document.body.scrollWidth ? document.body.scrollWidth : document.documentElement.scrollWidth,        height: document.body.scrollHeight ? document.body.scrollHeight   : document.documentElement.scrollHeight    }}
复制代码

 

 

复制代码
/** * 根据类名获取元素 *  * @param className * @param context * @returns */function getByClassName(className,context) {    context=context || document;    if (context.getElementsByClassName) {        return context.getElementsByClassName(className);    }    var nodes=context.getElementsByTagName('*'),ret=[];    for (var i=0;i<nodes.length;i++) {        if (nodes[i].nodeType == 1 && nodes[i].className.indexOf(className) != -1)        {            ret.push(nodes[i]);        }        }    return ret;}
复制代码

 

 

复制代码
/** * Registers a callback for DOM ready. If DOM is already ready, the * callback is called immediately. * @param {Function} Array callback */function domReady(callback) {    var isTop, testDiv, scrollIntervalId,        isPageLoaded = false,        doc = document,        readyCalls = [];    function runCallbacks(callbacks) {        var i;        for (i = 0; i < callbacks.length; i += 1) {            callbacks[i](doc);        }    }    function callReady() {        var callbacks = readyCalls;        if (isPageLoaded) {            //Call the DOM ready callbacks            if (callbacks.length) {                readyCalls = [];                runCallbacks(callbacks);            }        }    }    /**     * Sets the page as loaded.     */    function pageLoaded() {        if (!isPageLoaded) {            isPageLoaded = true;            if (scrollIntervalId) {                clearInterval(scrollIntervalId);            }            callReady();        }    }      if (document.addEventListener) {        //Standards. Hooray! Assumption here that if standards based,        //it knows about DOMContentLoaded.        document.addEventListener("DOMContentLoaded", pageLoaded, false);        window.addEventListener("load", pageLoaded, false);    } else if (window.attachEvent) {        window.attachEvent("onload", pageLoaded);        testDiv = document.createElement('div');        try {            isTop = window.frameElement === null;        } catch (e) {}        //DOMContentLoaded approximation that uses a doScroll, as found by        //Diego Perini: http://javascript.nwbox.com/IEContentLoaded/,        //but modified by other contributors, including jdalton        if (testDiv.doScroll && isTop && window.external) {            scrollIntervalId = setInterval(function () {                try {                    testDiv.doScroll();                    pageLoaded();                } catch (e) {}            }, 1);        }    }    //Check if document already complete, and if so, just trigger page load    //listeners. Latest webkit browsers also use "interactive", and    //will fire the onDOMContentLoaded before "interactive" but not after    //entering "interactive" or "complete". More details:    //http://dev.w3.org/html5/spec/the-end.html#the-end    //http://stackoverflow.com/questions/3665561/document-readystate-of-interactive-vs-ondomcontentloaded    //Hmm, this is more complicated on further use, see "firing too early"    //bug: https://github.com/requirejs/domReady/issues/1    //so removing the || document.readyState === "interactive" test.    //There is still a window.onload binding that should get fired if    //DOMContentLoaded is missed.    if (document.readyState === "complete") {        pageLoaded();    }        if (isPageLoaded) {//dom已经ready        callback(doc);    } else {        readyCalls.push(callback);    }}domReady(function(){    alert('domload');    alert(document.getElementById('container'));})
复制代码

 

 

复制代码
//改变某个函数的内部this指针function closure(fn, scope){    return function (){        fn.apply(scope, arguments);    };}//调用某个对象的某个函数,并将次对象作为方法的作用域function invoke(obj, methodName){    return function(){        obj.methodName.apply(obj, arguments);    };}
复制代码

 

 

复制代码
// 元素数据缓存(function(){     var cache = [0],        expando = 'data' + +new Date();     function data(elem) {         var cacheIndex = elem[expando],            nextCacheIndex = cache.length;         if(!cacheIndex) {            cacheIndex = elem[expando] = nextCacheIndex;            cache[cacheIndex] = {};        }         return {            get : function(key) {                if(typeof key === 'string')                {                     return cache[cacheIndex] ? cache[cacheIndex][key] : null;                }                return cache[cacheIndex] ? cache[cacheIndex] : null;            },            set : function(key, val) {                cache[cacheIndex][key] = val;                return data(elem);            },            remove : function(key){                if(cache[cacheIndex])                {                    return cache.splice(cacheIndex,1);                                    }            }        }    }     window.data = data; })();
复制代码

 

复制代码
//js请求xml文件,if (window.ActiveXObject) {    //IE    var getXMLDOM=function () {        return new ActiveXObject("Microsoft.XmlDom");    },loadXMLFile=function (xmlDom,url,callback) {        xmlDom.onreadystatechange=function () {            if (xmlDom.readyState===4) {                if (xmlDom.parseError.errorCode===0) {                    callback.call(xmlDom);                } else {                    throw new Error("XML Parse Error:"+xmlDom.parseError.reason);                }            }        };        xmlDom.load(url);        return xmlDom;    },loadXMLString=function (xmlDom,s) {        xmlDom.loadXML(s);        if (xmlDom.parseError.errorCode!==0) {            throw new Error("XML Parse Error:"+xmlDom.parseError.reason);        }        return xmlDom;    },    getXML=function (xmlNode) {        return xmlNode.xml;    };}else if (document.implementation && document.implementation.createDocument) {    //W3C    var getXMLDOM=function () {//获取一个XMLDOM对象        return document.implementation.createDocument("","",null);    },    loadXMLFile=function (xmlDom,url,callback) {        if (xmlDom.async===true) {            xmlDom.onload=function () {                if (xmlDom.documentElement.nodeName=="parsererror") {                    throw new Error("XML Parse Error:"+xmlDom.documentElement.firstChild.nodeValue);                } else {                    callback.call(xmlDom);                }            };        }        console.dir(xmlDom);        xmlDom.load(url);        return xmlDom;    },    loadXMLString=function (xmlDom,s) {        var p = new DOMParser();        var newDom=p.parseFromString(s,"text/xml");        if (newDom.documentElement.nodeName=="parsererror") {            throw new Error("XML Parse Error:"+newDom.documentElement.firstChild.nodeValue);        }        while (xmlDom.firstChild) {            xmlDom.removeChild(xmlDom.firstChild);        }        for (var i=0,n;i<newDom.childNodes.length;i++) {            n=xmlDom.importNode(newDom.childNodes[i],true);            //importNode用于把其它文档中的节点导入到当前文档中            //true参数同时导入子节点            xmlDom.appendChild(n);        }        return xmlDom;    },    getXML=function (xmlNode) {        var s= new XMLSerializer();        return s.serializeToString(xmlNode,"text/xml");    };}var xmldom = getXMLDOM();loadXMLFile(xmldom,"/xml.php",function () {   alert(this);});
复制代码

 

复制代码
/**args {    url    method 默认值为get    success Function    data {key:value}    cache Boolean true表示缓存,默认值为false    datatype 默认 text text|xml}*/function ajax(args) {    //创建xhr对象    function createXHR() {    return window.XMLHttpRequest?        new XMLHttpRequest():        new ActiveXObject("Microsoft.XMLHTTP");//IE6    }        //拼接参数        function params(o) {        var a=[];        for (var i in o) {           a.push(encodeURIComponent(i)+"="+encodeURIComponent(o[i]));        }        return a.join("&");    }        var xhr = createXHR();        args.method=args.method || "get";        if (!args.cache) {        args.data.cache = (new Date()*1);    }       var data_str = params(args.data)        if (/get/i.test(args.method) && data_str) {         args.url += args.url.indexOf("?")<0 ? '?' : '&';         args.url += data_str;    }        xhr.open(args.method,args.url,true);        xhr.onreadystatechange=function () {        if (xhr.readyState===4 && xhr.status===200) {            if(!args.datatype || args.datatype.toLowerCase() === 'text')            {                args.success(xhr.responseText);            }else{                args.success(xhr.responseXML);            }        }    };        if (/post/i.test(args.method)) {        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");        xhr.send(data);    } else {        xhr.send();    }}ajax({    url:"/xml.php",    method:'post',    success:function(xmldom){        alert(xmldom.nodeName);    },    data:{id:1},    datatype:'xml'})
复制代码

 

 

复制代码
//获取firstchildfunction firstChild(elem){    var node = elem.firstChild ? elem.firstChild : null;    while(node && node.nodeType != 1)    {        node = node.nextSibling;    }    return node;}//获取下一个同辈元素(ie下回忽略空白文节点)function next(elem){    var node = elem.nextSibling ? elem.nextSibling : null;    while(node && node.nodeType != 1 )    {        node = node.nextSibling;    }        return node;}//获取上一个同辈元素(ie下回忽略空白文节点)function prev(elem){    var node = elem.previousSibling ? elem.previousSibling : null;    while(node && node.nodeType != 1 )    {        node = node.previousSibling;    }        return node;}
复制代码

 

复制代码
/** * 获取指定类名的父元素 * @param elem * @param className * @returns */function parents(elem, className){    //检测自身是否满足条件    if(elem.className.indexOf(className) != -1)    {        return elem;    }            var parent = null;    while((parent = elem.parentNode) &&  parent.nodeType == 1 && !!className)    {        if(parent.className.indexOf(className) != -1)        {            break;        }        elem = parent;    }    return parent;}
复制代码

 

 

复制代码
//输入html代码,输出转换后的代码function htmlEncode( html ){    //使用div来模拟    var div = document.createElement("div");            if(typeof div.innerText != 'undefined')    {        div.innerText  = html;    }else{        div.textContent = html;    }    var html_encode = div.innerHTML;    div = null;        return html_encode;}function htmlDecode( html ){    //使用div来模拟    var text, div = document.createElement("div");    div.innerHTML = html;                if(typeof div.innerText != 'undefined')    {         text = div.innerText;    }else{        text = div.textContent;    }        return text;}function htmlEncode(str) {    var s = "";    if (str.length == 0) return "";    s = str.replace(/\&/g, "&amp;");    s = s.replace(/</g, "&lt;");    s = s.replace(/>/g, "&gt;");    s = s.replace(/\'/g, "&#039;");    s = s.replace(/\"/g, "&quot;");    return s;}function htmlDecode(str) {    var s = "";    if (str.length == 0) return "";    s = str.replace(/&amp;/g, "&");    s = s.replace(/&lt;/g, "<");    s = s.replace(/&gt;/g, ">");    s = s.replace(/&#039;/g, "\'");    s = s.replace(/&quot;/g, "\"");    return s;}function htmlEncode(html){  var div  = document.createElement("div");  var text = document.createTextNode("");    div.appendChild(text);    text.nodeValue=html;  return div.innerHTML;}function htmlDecode(str){  var div  = document.createElement("div");  div.innerHTML = str;    return  div.firstChild.nodeValue;}
复制代码

 

复制代码
//计算数组中的最大值Array.prototype.max = function(){ return Math.max.apply({},this)}//计算数组中的最小值Array.prototype.min = function(){ return Math.min.apply({},this)}//复制数组Array.prototype.copy =  function() {    return [].concat(this);};//去除数组中只指定元素,只能去除一个,如果想多个,之前先用unique处理Array.prototype.remove = function(value){    for(var i=0,len=this.length;i<len;i++)    {        if(this[i]==value){            this.splice(i, 1);            break;        }    }        return this;}//去除数组中只指定元素,只能去除一个,如果想多个,之前先用unique处理Array.prototype.inArray = function(value){    var index = -1;    each(this,function(v,k){        if(v == value){            index = k;            return false;        }    })    return index;}//去除数组中的重复元素Array.prototype.unique = function(){    var rst = [];    each(this, function(v,k){        if(rst.inArray(v)<0) rst.push(v);    })    return rst;}
复制代码

 

复制代码
String.prototype.repeat=function(n){return new Array(n+1).join(this);}String.prototype.ltrim=function(){return this.replace(/^\s*/, "");}String.prototype.rtrim=function(){return this.replace(/\s*$/, "");}String.prototype.trim=function(){return this.rtrim().ltrim();}//非ascii字符String.prototype.hasChinese=function(){return /[^\u00-\uff]/g.test(this);}//包括中英韩文,这三种语言里面有更多共同的String.prototype.onlyChinese=function(){return /^[\u0391-\u9FBF]+$/g.test(this);}//取得字符串实际长度(汉字算两个字节,英文字母算一个字节) \x代表ascii码,会按unicode码进行匹配String.prototype.bytes=function(){ return this.replace(/[^\x00-\xff]/gi,'xx').length;}Number.prototype.inter=function (a,b) {//检测数字是否在区间之内    var min=Math.min(a,b),max=Math.max(a,b);    return this==a || this==b || (Math.max(this,min)==this && Math.min(this,max)==this);};
复制代码

 

 

复制代码
//过滤空白文本节点function filterSpaceNode(nodes) {掉    var ret=[];    for(var i=0;i<nodes.length;i++) {        if (nodes[i].nodeType===3                 && /^\s+$/.test(nodes[i].nodeValue)) {                    continue;        }        ret.push(nodes[i]);    }    return ret;}
复制代码

 

 

 

复制代码
function addClassName(obj,cn) {    return obj.className += " " + cn;}function delClassName(obj,cn) {    return obj.className = obj.className.replace(new RegExp("\\b"+cn+"\\b"),"");    //同样,多个className之间的多个空格也会被视为一个}function hasClassName(obj,cn) {            return (new RegExp("\\b"+cn+"\\b")).test(obj.className);}
复制代码

 

 

复制代码
function placeNode(node,fn,__this) {    fn.call(__this,frag(node));    return __this;}function append(node, newNode) {    return placeNode(newNode,function (one) {node.appendChild(one)},node);}function preappend(node, newNode) {    return placeNode(newNode,function (one) {node.insertBefore(one,node.firstChild)},node);}function before(node, newNode) {    return placeNode(newNode,function (one) {node.parentNode.insertBefore(one,node)},node);}function after(node, newNode) {    //如果node有下一个节点的话,newNode 插入到node.nextSibling的前面    //如果node没有下一个节点,newNode插入为node.parentNode的最后一个子    if (node.nextSibling) {        placeNode(newNode,function (one) {node.parentNode.insertBefore(one,node.nextSibling)},node);    } else {        placeNode(newNode,function (one) {node.parentNode.appendChild(one)},node);    }    return node;}//如果新节点是页面中已经存在的则新节点原来的位置会消失function replaceNode(newNode, node) {   node.parentNode.replaceChild(newNode, node);}function delNode(node) {    node.parentNode.removeChild(this);}function frag(nodes) {    var tempFrag =document.createDocumentFragment();    if (nodes.nodeType) {nodes=[nodes];}        /*    错误的写法 传入的是引用    each(nodes,function(node){        tempFrag.appendChild(node);    })*/        for(var i=0;i<nodes.length;i++) {        //克隆后不在是引用        var a = nodes[i].cloneNode(true);        (function(node){            tempFrag.appendChild(node);        })(a)    }        /*            while(nodes.length>0)        {            tempFrag.appendChild(nodes[0]);            alert(nodes.length);        }    */        return tempFrag;}//html转换为对象function html2Obj(html){    var div = document.createElement('div');    div.innerHTML = html;    return div.firstChild;}
复制代码

 

 

复制代码
//数据的本地化存储,都兼容function makeWebStorage() {        //ie用userdata实现,w3c浏览器本身支持    if (!("localStorage" in window)) {        var store = {            userData : null,            name : location.hostname,            init : function () {                if (!store.userData) {                    try {                        store.userData = document.createElement('INPUT');                        store.userData.type = "hidden";                        store.userData.style.display = "none";                        store.userData.addBehavior("#default#userData");                        document.body.appendChild(store.userData);                        var expires = new Date();                        expires.setDate(expires.getDate() + 365);                        store.userData.expires = expires.toUTCString();                    } catch (e) {                        return false;                    }                }                return true;            },            setItem : function (key, value) {                if (store.init()) {                    store.userData.load(store.name);                    store.userData.setAttribute(key, value);                    store.userData.save(store.name);                }            },            getItem : function (key) {                if (store.init()) {                    store.userData.load(store.name);                    return store.userData.getAttribute(key)                }            },            remove : function (key) {                if (store.init()) {                    store.userData.load(store.name);                    store.userData.removeAttribute(key);                    store.userData.save(store.name);                }            }        };    }else{        store = {            set:function(key, value){localStorage.setItem(key, value)},            get:function(key){return localStorage.getItem(key)},            remove:function(key){return localStorage.removeItem(key)}        }    }    window.webStorage = store;}
复制代码

 

 

复制代码
/** * 记录函数调用的次数 */function invokeTimes(){    if(arguments.callee.times == undefined)    {        arguments.callee.times = 0;    }    arguments.callee.times ++;        console.log(arguments.callee.times);    }document.body.onclick = function(){        invokeTimes();}
复制代码

 

 

复制代码
/** *javascript按字节进行截取 * * param str 要截取的字符串 * param L 要截取的字节长度,注意是字节不是字符,一个汉字两个字节 * return 截取后的字符串 */function cutStr(str,L){        var result = '',        strlen = str.length, // 字符串长度        chrlen = str.replace(/[^\x00-\xff]/g,'**').length; // 字节长度    if(chrlen<=L){return str;}        for(var i=0,j=0;i<strlen;i++){        var chr = str.charAt(i);        if(/[\x00-\xff]/.test(chr)){            j++; // ascii码为0-255,一个字符就是一个字节的长度        }else{            j+=2; // ascii码为0-255以外,一个字符就是两个字节的长度        }        if(j<=L /* || j==L+1 */){ // 当加上当前字符以后,如果总字节长度小于等于L,则将当前字符真实的+在result后            result += chr;        }else{ // 反之则说明result已经是不拆分字符的情况下最接近L的值了,直接返回            return result;        }    }}// 用例alert(cutStr("abc中英文混合",10));
复制代码

 

 

复制代码
//变量定义 效果同php中的define函数function define (name, value) {  // Define a new constant  //  // version: 903.3016  // discuss at: http://phpjs.org/functions/define  // +      original by: Paulo Freitas  // +       revised by: Andrea Giammarchi (http://webreflection.blogspot.com)  // + reimplemented by: Brett Zamir (http://brett-zamir.me)  // *        example 1: define('IMAGINARY_CONSTANT1', 'imaginary_value1');  // *        results 1: IMAGINARY_CONSTANT1 === 'imaginary_value1'  var defn, replace, script, that = this,    d = this.window.document;  var toString = function (name, value) {    return 'const ' + name + '=' + (/^(null|true|false|(\+|\-)?\d+(\.\d+)?)$/.test(value = String(value)) ? value : '"' + replace(value) + '"');  };  try {    eval('const e=1');    replace = function (value) {      var replace = {        "\x08": "b",        "\x0A": "\\n",        "\x0B": "v",        "\x0C": "f",        "\x0D": "\\r",        '"': '"',        "\\": "\\"      };      return value.replace(/\x08|[\x0A-\x0D]|"|\\/g, function (value) {        return "\\" + replace[value];      });    };    defn = function (name, value) {      if (d.createElementNS) {        script = d.createElementNS('http://www.w3.org/1999/xhtml', 'script');      } else {        script = d.createElement('script');      }      script.type = 'text/javascript';      script.appendChild(d.createTextNode(toString(name, value)));      d.documentElement.appendChild(script);      d.documentElement.removeChild(script);    };  } catch (e) {    replace = function (value) {      var replace = {        "\x0A": "\\n",        "\x0D": "\\r"      };      return value.replace(/"/g, '""').replace(/\n|\r/g, function (value) {        return replace[value];      });    };    defn = (this.execScript ?    function (name, value) {      that.execScript(toString(name, value), 'VBScript');    } : function (name, value) {      eval(toString(name, value).substring(6));    });  }  defn(name, value);}
复制代码


源引:http://www.cnblogs.com/siqi/archive/2013/07/07/3175881.html

0 0
原创粉丝点击