jQuery版本兼容性检测

前端之家收集整理的这篇文章主要介绍了jQuery版本兼容性检测前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有任何资源可以测试jQuery脚本/扩展/插件/版本兼容性问题?

解决方法

刚刚编写了一个小的jQuery插件来帮助解决版本兼容性问题…随意改进它.
(function($) {
    /**
     * Used for version test cases.
     * 
     * @param {string} left A string containing the version that will become
     *        the left hand operand.
     * @param {string} oper The comparison operator to test against. By
     *        default,the "==" operator will be used.
     * @param {string} right A string containing the version that will
     *        become the right hand operand. By default,the current jQuery
     *        version will be used.
     *        
     * @return {boolean} Returns the evaluation of the expression,either
     *         true or false.
     */
    $.isVersion = function(left,oper,right) {
        if (left) {
            var pre = /pre/i,replace = /[^\d]+/g,oper = oper || "==",right = right || $().jquery,l = left.replace(replace,''),r = right.replace(replace,l_len = l.length,r_len = r.length,l_pre = pre.test(left),r_pre = pre.test(right);

            l = (r_len > l_len ? parseInt(l) * ((r_len - l_len) * 10) : parseInt(l));
            r = (l_len > r_len ? parseInt(r) * ((l_len - r_len) * 10) : parseInt(r));

            switch(oper) {
                case "==": {
                    return (true === (l == r && (l_pre == r_pre)));
                }
                case ">=": {
                    return (true === (l >= r && (!l_pre || l_pre == r_pre)));
                }
                case "<=": {
                    return (true === (l <= r && (!r_pre || r_pre == l_pre)));
                }
                case ">": {
                    return (true === (l > r || (l == r && r_pre)));
                }
                case "<": {
                    return (true === (l < r || (l == r && l_pre)));
                }
            }
        }

        return false;
    }
})(jQuery);

可以像这样使用:

$.isVersion("1.4.2"); // returns true,if $().jquery == "1.4.2"
$.isVersion("1.3.2",">"); // returns true if $().jquery > "1.3.2"
$.isVersion("1.3",">","1.2.6"); // returns true
$.isVersion("1.3.2","<","1.3.1"); // returns false
$.isVersion("1.4.0",">=","1.3.2"); // returns true
$.isVersion("1.4.1","<=","1.4.1"); // returns true

支持预发布(版本比预版本重,因此1.4.0pre <1.4.0):

$.isVersion("1.4.2","1.4.2pre"); // returns false

猜你在找的jQuery相关文章