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

IT技术 javascript jquery jquery-tools
2021-01-19 01:59:43

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

Uncaught TypeError: Cannot read property 'msie' of undefined

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

我怎样才能解决这个问题,所以它不会给出错误?

6个回答

您可以通过 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;
    }
})();

参考

哇,如果我能给你 10 加分,我现在就去做。
2021-03-14 01:59:43
我放了这段代码,但它不适用于 Chrome 浏览器!
2021-03-15 01:59:43
这个答案不再正确,因为 IE11 在userAgent字符串中没有 MSIE 标记
2021-03-17 01:59:43
正如@DaveMethvin 所提到的,它在 IE11 中不起作用......关于这个问题的任何解决方案?
2021-03-25 01:59:43
这工作完美!但我认为这应该用作补丁,而不是解决方案,对吗?
2021-04-01 01:59:43

$.browserjQuery 1.9 开始,方法已被删除。

jQuery.browser() removed

jQuery.browser()方法自 jQuery 1.3 起已被弃用,并在 1.9 中删除。如果需要,它可以作为 jQuery Migrate 插件的一部分使用。我们建议将特征检测与 Modernizr 等库结合使用。

jQuery Core 1.9 升级指南

如升级指南中所述,您可以尝试使用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 文件,然后引用该文件。
2021-03-20 01:59:43
@User5590:任何时候:)
2021-03-24 01:59:43
好吧,我可以看到它是在线托管的...无论如何,谢谢我用 jquery.noConflict() 解决了它,因为我在同一页面上使用了两个版本的 jquery。
2021-03-25 01:59:43
不应在生产中使用非缩小的 jquery:例如检查cdnjs.com并改用 HTTPS。
2021-04-10 01:59:43

我在 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>
这个链接链接给了我错误,但是你写的这段小代码对我帮助很大,谢谢伙计。
2021-04-06 01:59:43

我只是添加了

jQuery.browser = {
    msie: false,
    version: 0
};

在 jquery 脚本之后,因为我不再关心 IE 了。

谢谢兄弟。我遇到了这些类型的错误并解决了您的解决方案提供的问题。
2021-04-03 01:59:43