MVC 4ビューでJQGridを作成しようとしていますが、
未定義またはnull参照のプロパティ 'msie'を取得できません
jQGridjavascriptファイルを追加するときのエラー
bundles.Add(new ScriptBundle("~/Bundles/Shared/JS").Include(
"~/Scripts/jquery-1.9.1.min.js",
"~/Scripts/jquery.validate.min.js",
"~/Scripts/bootstrap.js",
"~/Content/silviomoreto-bootstrap-select/bootstrap-select.min.js",
"~/Scripts/js/Shared/Index.js",
"~/Scripts/js/Shared/Validation.js",
"~/Scripts/jquery.placeholder.js",
"~/Content/jquery.jqGrid-4.4.3/js/i18n/grid.locale-en.js",
"~/Content/jquery.jqGrid-4.4.3/js/jquery.jqGrid.min.js"));
次の行でエラーが発生します
e=n.browser.msie&&"6.0"==n.browser.version
なぜこれが起こっているのか考えはありますか?
jQuery.browser
のjQueryドキュメントから:
このプロパティはjQuery 1.9で削除され、jQuery.migrateプラグインを介してのみ使用できます。代わりに特徴検出を使用してみてください。
したがって、古いバージョンのjQueryにドロップダウンするか、 プラグインの移行 を使用する必要があります。
このプロパティがjQuery1.9で削除されたので、同様の問題が発生しました...ページスクリプトタグ内に以下のコードを追加します。
jQuery.browser = {};
(function () {
jQuery.browser.msie = false;
jQuery.browser.version = 0;
if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
jQuery.browser.msie = true;
jQuery.browser.version = RegExp.$1;
}
})();
e = n.browser.msie && "6.0" == n.browser.version
こんな感じだと思います
e == n.browser.msie && "6.0"==n.browser.version
またはe === n.browser.msie && "6.0"=== n.browser.version
厳密な平等のために
私の別の古いスクリプトでも同様の問題が発生しましたが、大多数のユーザーは6.0を超えるバージョンのIEを実行するため、6.0または以下。私がしたことは、言った行を変更することでした
var isIE6 = ($.browser.msie && &.browser.version < 7);
に
var isIE6 = false;