[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法
2016-03-03 10:38
489 查看
最近把一个项目的jQuery升级到最新版,发现有些页面报错Cannot read property ‘msie’ of undefined。上jQuery网站上搜了一下,原因是$.browser这个api从jQuery1.9开始就正式废除,js代码里只要用到$.browser就会报这个错。具体说明参见jQuery官方说明。
撸主顺便扩展阅读了一下,发现jQuery 1.9把所有在之前版本里标记为deprecated的api都正式删除了,彻底不再向后兼容。对于升级到最新jQuery的童鞋而言,这意味着得花费一些额外的时间把代码升级使用新的api,或者自己另外实现这些被删除的方法。幸运的是,jQuery团队考虑到了这个改动带来的不便,推出了一个插件jQuery Migrate,这个插件能够自动恢复那些在最新版本里之后被废弃的API,从而让已有的js代码无须改动就能和最新的jQuery库一起正常运行。
下面是具体的解决方法,先下载最新的jQuery Migrate插件,然后在引用jQuery js的地方之后加上一行对jQuery Migrate js文件的引用即可。
对于不喜欢用jQuery Migrate的童鞋,可以尝试下面另外一种方法,加载顺序为,在jQuery文件之后,$.browser的代码之前。
撸主顺便扩展阅读了一下,发现jQuery 1.9把所有在之前版本里标记为deprecated的api都正式删除了,彻底不再向后兼容。对于升级到最新jQuery的童鞋而言,这意味着得花费一些额外的时间把代码升级使用新的api,或者自己另外实现这些被删除的方法。幸运的是,jQuery团队考虑到了这个改动带来的不便,推出了一个插件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的童鞋,可以尝试下面另外一种方法,加载顺序为,在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 validate 详解
- js Regex match, exec, test & jquery plugin, visit the official website!
- 初接触jquery easyui的一点认知
- jquery的$.extend和$.fn.extend作用及区别
- jQuery.extend和jQuery.fn.extend的区别
- 初学关于JQUERY、EasyUI的见解
- JavaScript、jQuery、css3实现瀑布流加载
- 通过js框架jquery判断IE浏览器版本来解决浏览器兼容性问题
- jQuery mouseover与mouseenter,mouseout与mouseleave的区别
- 初学Jquery easyui后台框架基础所了解的知识和注意要点
- JQuery源码学习笔记(持续更新中)
- 20jquery题
- jQuery面试题答案
- jQuery日历插件datepicker用法详解
- JQuery日期插件datepicker的使用方法
- JQuery里的原型prototype分析
- [jQuery学习系列六]6-jQuery实际操作小案例
- [jQuery学习系列五 ]5-Jquery学习五-表单验证
- jquery是如何架构的.
- [jQuery学习系列四 ]4-Jquery学习四-事件操作