未捕获的类型错误:无法读取属性'msie'未定义的-jQuery工具
Uncaught TypeError: Cannot read property 'msie' of undefined - jQuery tools
我在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() removed
jQuery.browser()
方法自jQuery 1.3以来一直被弃用,并在1.9中被删除如果需要,它可以作为jQueryMigrate插件的一部分提供我们建议将特征检测与Modernizr等库一起使用。--jQuery Core 1.9升级指南。
正如《升级指南》中所述,您可以尝试使用jQueryMigrate插件来恢复此功能,并让jQueryTools正常工作。
在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文件include之后使用下面的代码,它现在可以工作了。
<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了。
这是GitHub上的jQuery Tools错误。你可以试试其中一个补丁。
编辑—在我看来,jQueryTools并没有得到太多的支持。我个人不会开始一个依赖图书馆的新项目,除非我准备接管自己的支持。
由于我根本不打算支持旧的MS IE版本,所以我只是用false
替换了对browser.msie
的所有引用。我知道这不是一个好的解决方案,但它对我有效
(实际上,它们以!browser.msie
的形式出现,可以从条件中省略。)
用替换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>
源链接
看到这个问题主要是由于浏览器导航和版本属性引起的。为此,您必须在函数中添加以下代码:
/* 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;
}
});
});
像吹一样使用
$(function (a) {
然后在您的函数中,您可以使用类似的msie属性
if (a.browser.msie)
{
}
else
{
$(settings.current).after(Uploadelement);
}
祝你好运
像吹一样使用
我使用这个命令并解决
"未捕获的类型错误:无法读取未定义的"错误的属性"msie"
if (/1'.(0|1|2)'.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
return;
}
我在使用JQuery 1.10和JQuery UI 1.8时收到此错误。我通过更新到最新的JQuery UI 1.11.4解决了这个错误。
从Visual Studio更新JQuery UI的步骤:
- 导航到项目或解决方案
- 右键单击:"管理NuGet包"
- 在左侧,单击"已安装的软件包"选项卡
- 查找"JQuery UI(组合库)"并单击"更新"
- 如果找到,请选择它并单击"更新"
- 如果没有找到,请在左侧的"Online>nuget.org"选项卡中找到它,然后单击安装。如果Jquery UI版本的旧版本仍然存在,则可以将其从项目中删除
如果定义了两次jQuery,那么可能会出现此错误。例如,如果您正在使用Primefaces(它已经包括jQuery),并且您在其他地方定义了它。
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- 这.SOMETHING 总是返回未定义的 - extjs
- JavaScript 运行时错误:无法获取未定义或空引用的属性“msie”
- 无法读取属性'msie'未定义的jquery.colorbox.js:66
- 未捕获的类型错误:无法读取属性'msie'未定义的-jQuery工具