$.browser は、ブラウザの基本情報を取得するために使用されます。
jQuery バージョン 1.9 以降、$.browser と $.browser.version が削除され、$.support が置き換えられました。アップデートされたバージョン 2.0 では、IE 6/7/8 はサポートされなくなります。将来、ユーザーが IE 6/7/8 をサポートする必要がある場合、jQuery 1.9 のみを使用できます。
解決:
1. JQuery バージョン 1.9 より前のバージョンを使用します (もちろん、この方法は適切ではなく、非常に面倒です)。
2. $.browser.js を参照、コードは次のとおりです
(function(jQuery){
if(jQuery.browser) return;
jQuery.browser = {};
jQuery.browser.mozilla = false;
jQuery.browser.webkit = false;
jQuery.browser.opera = false;
jQuery.browser.msie = false;
var nAgt = navigator.userAgent;
jQuery.browser.name = navigator.appName;
jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion);
jQuery.browser.majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;
// In Opera, the true version is after "Opera" or after "Version"
if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
jQuery.browser.opera = true;
jQuery.browser.name = "Opera";
jQuery.browser.fullVersion = nAgt.substring(verOffset+6);
if ((verOffset=nAgt.indexOf("Version"))!=-1)
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
jQuery.browser.msie = true;
jQuery.browser.name = "Microsoft Internet Explorer";
jQuery.browser.fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome"
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
jQuery.browser.webkit = true;
jQuery.browser.name = "Chrome";
jQuery.browser.fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version"
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
jQuery.browser.webkit = true;
jQuery.browser.name = "Safari";
jQuery.browser.fullVersion = nAgt.substring(verOffset+7);
if ((verOffset=nAgt.indexOf("Version"))!=-1)
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox"
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
jQuery.browser.mozilla = true;
jQuery.browser.name = "Firefox";
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <
(verOffset=nAgt.lastIndexOf('/')) )
{
jQuery.browser.name = nAgt.substring(nameOffset,verOffset);
jQuery.browser.fullVersion = nAgt.substring(verOffset+1);
if (jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()) {
jQuery.browser.name = navigator.appName;
}
}
// trim the fullVersion string at semicolon/space if present
if ((ix=jQuery.browser.fullVersion.indexOf(";"))!=-1)
jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);
if ((ix=jQuery.browser.fullVersion.indexOf(" "))!=-1)
jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);
jQuery.browser.majorVersion = parseInt(''+jQuery.browser.fullVersion,10);
if (isNaN(jQuery.browser.majorVersion)) {
jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion);
jQuery.browser.majorVersion = parseInt(navigator.appVersion,10);
}
jQuery.browser.version = jQuery.browser.majorVersion;
})(jQuery);
新しい js を作成し、その中に上記のコードをコピーし、jsp で引用します。
JSでの(function(){xxx})()の書き方の解説。
自己実行型の匿名関数:
一般的な形式: (function() { /* code */ })();
説明: 関数を囲む最初のかっこのペア (function(){}) は、名前のない関数をスクリプトに返し、次に空のかっこのペアを返します。 return をすぐに実行します。 の名前のない関数、無名関数のパラメータは括弧内にあります。
機能: これを使用して名前空間を作成できます。すべてのコードをこの特別な関数パッケージ内に記述している限り、許可しない限り外部にアクセスできません (関数または変数がグローバルになるように、変数の前にウィンドウを追加します)。 。各 JavaScript ライブラリのコードも、基本的にはこのように構成されています。
まとめると、 1. 実行機能の機能は主に匿名での自動実行であり、コードは解釈された時点ですでに実行されています。
2. 匿名関数とクロージャを使用して xxx 内のコードを実行します。同時に、変数のスコープなどのすべての定義はクロージャ内にあるため、外部の名前空間を汚染しません。
3. グローバル変数を汚染せずに特定の関数を実装したい場合は、jquery プラグインで一般的なこの自己実行匿名関数を使用します。
元のリンク: https://blog.csdn.net/lufuzhang2/article/details/46807813