jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
jQuery Cannot read property ‘msie' of undefined错误的解决方法
最近把一个项目的jQuery升级到最新版,发现有些页面报如下错误
Cannot read property 'msie' of undefined
上jQuery网站上搜了一下,原因是$.browser这个api从jQuery1.9开始就正式废除,js代码里只要用到$.browser就会报这个错。具体说明参见jQuery官方说明。
楼主顺便扩展阅读了一下,发现jQuery 1.9把所有在之前版本里标记为deprecated的api都正式删除了,彻底不再向后兼容。对于升级到最新jQuery的童鞋而言,这意味着得花费一些额外的时间把代码升级使用新的api,或者自己另外实现这些被删除的方法。幸运的是,jQuery团队意识到了这个break change带来的种种不便,推出了一个叫jQuery Migrate插件,用于能够自动恢复那些在最新版本里被废弃的API。只要引用了这个插件,已有的js代码无须改动就能和最新的jQuery库一起正常运行。
下面是具体的解决方法,首先要下载jQuery Migrate插件,然后在引用jQuery js的地方之后加上对jQuery Migrate js文件的引用即可。
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
用jQuery Migrate的解决方法虽然简单无脑,但是会导致增加一个额外的js库。对于不喜欢增加额外js库的童鞋,可以参考这篇博客提到的另外一种解决方法,请注意下面代码加载位置为:jQuery文件之后,$.browser的代码之前。
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 $(document).ready() 与window.onload的区别
- jquery JSON的解析方式
- jQuery.Autocomplete实现自动完成功能(详解)
- JQuery中each()的使用方法说明
- 12款经典的白富美型—jquery图片轮播插件—前端开发必备
- jquery 如何动态添加、删除class样式方法介绍
- JQuery触发radio或checkbox的change事件
- jquery ajax提交表单数据的两种方式
- jquery中获取id值方法小结
- jQuery EasyUI API 中文文档 - ComboBox组合框
- jquery validate.js表单验证的基本用法入门
相关文章
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
这篇文章主要介绍了jQuery绑定事件监听bind和移除事件监听unbind用法,结合实例形式详细分析了绑定事件监听bind和移除事件监听unbind的具体使用技巧与相关注意事项,需要的朋友可以参考下2016-01-01浅谈struts1 & jquery form 文件异步上传
下面小编就为大家带来一篇浅谈struts1 & jquery form 文件异步上传。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
这篇文章主要介绍了jQuery插件FusionCharts实现的2D柱状图效果,结合完整实例形式分析了FusionCharts插件绘制2D柱状图的实现步骤与相关属性设置技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下2017-03-03
最新评论