我在Chrome开发控制台得到以下错误:
Uncaught TypeError: Cannot read property 'msie' of undefined
我的理解是,这是因为.browser现在在jQuery中已弃用,但我正在使用最新版本的jQuery工具,它仍然会给出错误,我检查了js文件,它就在那里。
.browser
js
我怎样才能避免这个错误呢?
这是GitHub上的jQuery工具bug。你可以试试其中一个补丁。
编辑本;在我看来,jQuery工具并没有得到太多的支持。我个人不会开始一个依赖于该库的新项目,除非我准备自己接管支持。
$.browser方法在jQuery 1.9中被移除。
$.browser
jQuery.browser() removed jQuery.browser()方法自jQuery 1.3以来已弃用,并在1.9中被移除。我们推荐在Modernizr这样的库中使用特征检测。 ——jQuery Core 1.9升级指南。
jQuery.browser() removed
jQuery.browser()方法自jQuery 1.3以来已弃用,并在1.9中被移除。我们推荐在Modernizr这样的库中使用特征检测。
jQuery.browser()
——jQuery Core 1.9升级指南。
正如升级指南中所述,您可以尝试使用jQuery迁移插件来恢复此功能并让jQuery工具工作。
你可以看看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; } })();
参考:
false
browser.msie
(实际上,它们显示为!browser.msie,可以从条件中省略。)
!browser.msie
像吹一样吹
$(function (a) {
. . . . .然后在你的函数中,你可以使用msie属性像
if (a.browser.msie) { } else { $(settings.current).after(Uploadelement); }
古德勒克
在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>
这肯定有用。
我使用这个命令并求解
未捕获类型错误:无法读取未定义的属性“msie
if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) { return; }
将JS替换为
<script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
源链接
我在使用JQuery 1.10和JQuery UI 1.8时得到这个错误。我能够通过更新到最新的JQuery UI 1.11.4来解决这个错误。
我使用下面的代码后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,那么你就会得到这个错误。例如,如果你正在使用Primefaces(它已经包含了jQuery),而你在其他地方定义了它。
我只是补充了一句
jQuery.browser = { msie: false, version: 0 };
jquery脚本之后,因为我不再关心IE了。
/* solution to undefined msie */ jQuery.browser = {}; jQuery.browser.msie = false; jQuery.browser.version = 0; if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) { jQuery.browser.msie = true; jQuery.browser.version = RegExp.$1; } /* solution to undefined msie */
例如,我正在使用它的点击功能,看到它:
$(document).on('click', '.remove_add_test', function() { var product_id = $(this).data('id'); var thisproduct = $(this); /* solution to undefined msie */ jQuery.browser = {}; jQuery.browser.msie = false; jQuery.browser.version = 0; if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) { jQuery.browser.msie = true; jQuery.browser.version = RegExp.$1; } /* solution to undefined msie */ jConfirm('Are you sure you want to delete record?', 'Remove Product', function(r) { if (r == true) { $.ajax({ type: 'POST', url: 'scripts/ajax/index.php', data: { method: 'removeproduct_fromcart', id: product_id }, dataType: 'json', success: function(data) { if (data.RESULT == 0) { $(".price span").text(data.totalprice); $(thisproduct).closest('tr').remove(); $(".cart-number").text(data.productcount - 1); $.growl.notice({ title: "Shopping Cart", message: data.MSG }); location.reload(); // window.location.href = 'https://www.youth-revisited.co.uk/payment.html'; } // window.location.href = 'https://www.youth-revisited.co.uk/payment.html'; } }); // window.location.href = 'https://www.youth-revisited.co.uk/payment.html'; } else { return false; } }); });