无法获取未定义或空引用的属性“msie”

时间:2013-10-14 11:55:17

标签: jquery jqgrid

我正在尝试在MVC 4视图中创建一个JQGrid并获得

  

无法获取未定义或空引用的属性'msie'

添加JQGrid javascript文件时出现

错误

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

知道为什么会这样吗?

4 个答案:

答案 0 :(得分:19)

来自jQuery.browser的jQuery文档:

  

此属性已在jQuery 1.9中删除,并且只能通过jQuery.migrate插件获得。请尝试使用功能检测。

所以你必须下载到旧版本的jQuery或使用migrate plugin

答案 1 :(得分:8)

我也有类似的问题,因为在jQuery 1.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;
   }
})();

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我的另一个旧脚本遇到了类似的问题,但大多数用户都会运行一个超过6.0的IE版本,所以对我来说支持6.0或更低版本真的不是什么大问题。我所做的只是更改说

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

var isIE6 = false;