我在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;
}
})();
参考:
美元。jQuery 1.9浏览器。x表示遗留IE检测
其他回答
你可以看看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;
}
})();
参考:
美元。jQuery 1.9浏览器。x表示遗留IE检测
我使用下面的代码后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了。
美元的。jQuery 1.9已经删除了browser方法。
jQuery.browser()删除 jQuery.browser()方法自jQuery 1.3起已弃用,并在1.9中被移除。如果需要,它可以作为jQuery Migrate插件的一部分使用。我们建议在Modernizr这样的库中使用特征检测。 - jQuery Core 1.9升级指南。
如升级指南中所述,您可以尝试使用jQuery Migrate插件来恢复此功能,并让jQuery工具工作。
如果你定义了两次jQuery,那么你就会得到这个错误。例如,如果你正在使用Primefaces(它已经包含了jQuery),而你在其他地方定义了它。