自己写的jquery 的输出,再也不想alert了

之前调试一直alert,这个玩意不仅效率不高,而且各自object跟本看不出来什么,后来发现console这个,我去自己太失败了,然后发现ie依然坑,所以自己写了

这个插件,结合jquery,主要是练习哈哈,看了jx的调试,更加nb,不过这个也够用的了,给各位看看,需要的拿去

/**
 * jquery    输出 主要是给debug使用
 * 兼容各种模式 ,建议google或者firefox ie太坑爹了
 * @Author  JueYue
 *
 */
jQuery.log = {

    /**
     * 是不是调试模式
     * @returns {boolean}
     */
    isDebug: function () {
        return true;
    },

    /**
     * 在控制台输出 obj是输出对象,level是判断基本 包括info(默认),debug,warn,error
     * @param obj
     * @param info
     */
    trace: function (obj, level) {
        if (!this.isDebug()) {
            return;
        }
        if (typeof level == 'undefined' || level == null) {
            level = "info"
        }

        out.call(out, obj);

        function out(obj) {
            try {
                /**
                 * ie浏览器输出的不是直接对象而是object所以需要jquery遍历输出
                 */
                if (/mise/.test(navigator.userAgent.toLowerCase())
                    || /rv:11/.test(navigator.userAgent.toLowerCase())) {
                    window.console[level](jQuery.json.encode(obj));
                } else {
                    window.console[level](obj);
                }
            } catch (e) {
                window.console[level]("日志错误-----" + e.message);
            }
        }

        function logEach(obj) {
            $.each(obj, function () {
                out.call(out, this);
            });
        }

    }
};
/**
 * 因为ie不支持object所以需要把object转成json,这里调用一个函数
 * 网上找的一个方法,效果还不错
 */
jQuery.json = {
    type: function (o) {
        var _toS = Object.prototype.toString;
        var _types = {
            'undefined': 'undefined',
            'number': 'number',
            'boolean': 'boolean',
            'string': 'string',
            '[object Function]': 'function',
            '[object RegExp]': 'regexp',
            '[object Array]': 'array',
            '[object Date]': 'date',
            '[object Error]': 'error'
        };
        return _types[typeof o] || _types[_toS.call(o)] || (o ? 'object' : 'null');
    },
    $specialChars: { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' },
    $replaceChars: function (chr) {
        return jQuery.json.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);
    },
    encode: function (o) {
        var s = [];
        switch (jQuery.type(o)) {
            case 'undefined':
                return 'undefined';
                break;
            case 'null':
                return 'null';
                break;
            case 'number':
            case 'boolean':
            case 'date':
            case 'function':
                return o.toString();
                break;
            case 'string':
                return '"' + o.replace(/[\x00-\x1f\\"]/g, jQuery.json.$replaceChars) + '"';
                break;
            case 'array':
                for (var i = 0, l = o.length; i < l; i++) {
                    s.push(jQuery.json.encode(o[i]));
                }
                return '[' + s.join(',') + ']';
                break;
            case 'error':
            case 'object':
                for (var p in o) {
                    s.push(p + ':' + jQuery.json.encode(o[p]));
                }
                return '{' + s.join(',') + '}';
                break;
            default:
                return '';
                break;
        }
    },
    decode: function (s) {
        if (jQuery.type(s) != 'string' || !s.length) return null;
        return eval('(' + s + ')');
    }
};

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值