jquery Autocomplete 实现自动补全(四)解决jquery 高版本不支持browser方法

解决jquery 高版本不支持browser方法

            前几篇的例子是在 jquery 版本1.7.1 下使用的都没问题,但最近在我们的项目中jquery版本换成了 1.9 ,运行后发现不能实现自动补全功能了。后来在网上找了很多资料,才发现 juqery Autocomplete 插件依赖于jquery 1.2.6 到 jquery 1.8.3 的版本,对于jquery1.9 以上的版本不支持,1.9以上的版本去掉了 browser方法,所以要想在jquery1.9 版本以上继续使用 autocomplete 插件,通过实践我找到两种解决方法,这两种方法都可以用,具体如下:

1.   autocomplete.js里面加代码

autocomplete.js 中,最上面增加  $.browser = navigator.userAgent; 即可.    如下图所示:

jquery Autocomplete 实现自动补全(四)解决jquery 高版本不支持browser方法_第1张图片

2. 利用 jquery 扩展性,创建一个 jquery-browser.js
可以利用的扩展性,创建一个高版本支持browser 的 JS,具体内容如下:

/*
 * jQuery Autocomplete plugin 1.1
 * Revision: $Id: jquery-browser.js 15 2015-08-22 10:30:27Z joern.zaefferer $
 */
jQuery.extend({  
    browser: function()   
    {  
        var  
        rwebkit = /(webkit)\/([\w.]+)/,  
        ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,  
        rmsie = /(msie) ([\w.]+)/,  
        rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,      
        browser = {},  
        ua = window.navigator.userAgent,  
        browserMatch = uaMatch(ua);  
  
        if (browserMatch.browser) {  
            browser[browserMatch.browser] = true;  
            browser.version = browserMatch.version;  
        }  
        return { browser: browser };  
    },  
});  
  
function uaMatch(ua)   
{  
        ua = ua.toLowerCase();  
  
        var match = rwebkit.exec(ua)  
                    || ropera.exec(ua)  
                    || rmsie.exec(ua)  
                    || ua.indexOf("compatible") < 0 && rmozilla.exec(ua)  
                    || [];  
  
        return {  
            browser : match[1] || "",  
            version : match[2] || "0"  
        };  
}  

使用时首先创建一个 jquery-browser.js文件,再将上面代码复制到这个JS文件中,使用时将jquery-browser.js引入到页面即可.

两个方法都已测试过,可以放心用,希望能对大家有帮助.

你可能感兴趣的:(java,jquery,jquery,autocomplete,自动补全,高版本)