开发者问题收集

未捕获的类型错误:无法读取未定义的属性“msie”-jQuery 工具

2013-02-17
368538

我在 Chrome 开发控制台中收到以下错误:

Uncaught TypeError: Cannot read property 'msie' of undefined

我的理解是,这是因为 .browser 现在在 jQuery 中已被弃用,但是我正在使用最新版本的 jQuery 工具并且它仍然给出错误,我检查了 js 文件并且它在那里。

我该如何解决这个问题以便它不会给出错误?

3个回答

您可以查看 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;
    }
})();

参考

JrBriones
2013-06-06

从 jQuery 1.9 开始, $.browser 方法已被删除。

jQuery.browser() removed

The jQuery.browser() method has been deprecated since jQuery 1.3 and is removed in 1.9. If needed, it is available as part of the jQuery Migrate plugin. We recommend using feature detection with a library such as Modernizr.

jQuery Core 1.9 Upgrade Guide .

如升级指南中所述,您可以尝试使用 jQuery Migrate 插件 来恢复此功能并让 jQuery Tools 正常工作。

Alexander
2013-02-17

在您的 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>

这肯定会起作用。

Manisha Srivastava
2014-07-03