我正在尝试在MVC 4视图中创建一个JQGrid并获得
添加JQGrid javascript文件时出现无法获取未定义或空引用的属性'msie'
错误
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
知道为什么会这样吗?
答案 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;