web-dev-qa-db-fra.com

Impossible d'obtenir la propriété 'msie' de référence non définie ou nulle

J'essaie de créer un JQGrid dans ma vue MVC 4 et d'obtenir un

Impossible d'obtenir la propriété 'msie' de référence non définie ou nulle

erreur lors de l'ajout des fichiers javascript JQGrid

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"));

L'erreur se produit sur la ligne suivante

e=n.browser.msie&&"6.0"==n.browser.version

Une idée pourquoi cela se passe?

9
user65439

À partir de la documentation jQuery pour jQuery.browser :

Cette propriété a été supprimée dans jQuery 1.9 et est disponible uniquement via le plug-in jQuery.migrate. S'il vous plaît essayez d'utiliser la détection de fonctionnalité à la place.

Vous devrez donc utiliser une ancienne version de jQuery ou utiliser le plugin migrate .

19
James Allardice

J'ai également eu un problème similaire car cette propriété a été supprimée dans jQuery 1.9 ... Ajoutez le code ci-dessous dans la balise de script de votre page.

 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;
   }
})();
8
Anand

e = n.browser.msie && "6.0" == n.browser.version

Je suppose que ça devrait être comme ça

e == n.browser.msie && "6.0"==n.browser.version

ou e === n.browser.msie && "6.0"=== n.browser.version pour une égalité stricte

0
Mozak

J'ai eu un problème similaire avec un autre script plus ancien mais la majorité des utilisateurs utiliseront une version de IE sur 6.0, donc ce n'était pas très grave pour moi de fournir un soutien à 6.0 ou inférieur. Ce que j'ai fait était juste de changer la ligne qui dit 

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

à

var isIE6 = false;
0
RobNHood