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?
À 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 .
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;
}
})();
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
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;