web-dev-qa-db-ja.com

未定義またはnull参照のプロパティ 'msie'を取得できません

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

なぜこれが起こっているのか考えはありますか?

10
Andre Lombaard

jQuery.browser のjQueryドキュメントから:

このプロパティはjQuery 1.9で削除され、jQuery.migrateプラグインを介してのみ使用できます。代わりに特徴検出を使用してみてください。

したがって、古いバージョンのjQueryにドロップダウンするか、 プラグインの移行 を使用する必要があります。

19
James Allardice

このプロパティが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;
   }
})();
9
Anand

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厳密な平等のために

0
Mozak

私の別の古いスクリプトでも同様の問題が発生しましたが、大多数のユーザーは6.0を超えるバージョンのIEを実行するため、6.0または以下。私がしたことは、言った行を変更することでした

var isIE6 = ($.browser.msie && &.browser.version < 7);

var isIE6 = false;
0
RobNHood