您的位置:首页 > Web前端 > JQuery

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

2015-09-11 11:36 561 查看
解决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; 即可. 如下图所示:



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引入到页面即可.

两个方法都已测试过,可以放心用,希望能对大家有帮助.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: