我在 Chrome 开发控制台中收到以下错误:
Uncaught TypeError: Cannot read property 'msie' of undefined
我的理解是,这是因为.browser
现在在 jQuery 中已被弃用,但是我使用的是最新版本的 jQuery 工具,它仍然给出错误,我检查了js
文件,它就在那里。
我怎样才能解决这个问题,所以它不会给出错误?
我在 Chrome 开发控制台中收到以下错误:
Uncaught TypeError: Cannot read property 'msie' of undefined
我的理解是,这是因为.browser
现在在 jQuery 中已被弃用,但是我使用的是最新版本的 jQuery 工具,它仍然给出错误,我检查了js
文件,它就在那里。
我怎样才能解决这个问题,所以它不会给出错误?
您可以通过 AJ 查看此解决方案。这非常简单,只需复制并粘贴以下代码行即可。
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;
}
})();
参考:
从$.browser
jQuery 1.9 开始,该方法已被删除。
该
jQuery.browser()
方法自 jQuery 1.3 起已被弃用,并在 1.9 中删除。如果需要,它可以作为 jQuery Migrate 插件的一部分使用。我们建议将特征检测与 Modernizr 等库结合使用。
如升级指南中所述,您可以尝试使用jQuery Migrate 插件来恢复此功能并让 jQuery 工具工作。
在您的 jsp/js 文件中使用以下脚本标记:
<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
这肯定会起作用。
我在 js 文件包含之后使用下面的代码,现在它正在工作。
<script src="js/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
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;
}
})();
</script>
我只是添加了
jQuery.browser = {
msie: false,
version: 0
};
在 jquery 脚本之后,因为我不再关心 IE 了。