jquery Autocomplete 實現自動補全(四)解決jquery 高版本不支援browser方法
阿新 • • 發佈:2019-02-01
解決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裡面加程式碼
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引入到頁面即可.
兩個方法都已測試過,可以放心用,希望能對大家有幫助.