jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法


Posted in Javascript onNovember 23, 2016

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;}})();

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
Apr 26 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
如何防止回车(enter)键提交表单
May 11 Javascript
每天一篇javascript学习小结(Date对象)
Nov 13 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
使用Math.max,Math.min获取数组中的最值实例
Apr 25 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
Vue+Vux项目实践完整代码
Nov 30 Javascript
js实现随机8位验证码
Jul 24 Javascript
用vue 实现手机触屏滑动功能
May 28 Javascript
js实现前端界面导航栏下拉列表
Aug 27 Javascript
element-ui封装一个Table模板组件的示例
Jan 04 Javascript
移动开发之自适应手机屏幕宽度
Nov 23 #Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 #Javascript
jQuery-mobile事件监听与用法详解
Nov 23 #Javascript
jquery-mobile表单的创建方法详解
Nov 23 #Javascript
js获取当前时间(昨天、今天、明天)
Nov 23 #Javascript
浅析Node.js:DNS模块的使用
Nov 23 #Javascript
jquery-mobile基础属性与用法详解
Nov 23 #Javascript
You might like
PHP 采集程序原理分析篇
2010/03/05 PHP
php文件上传表单摘自drupal的代码
2011/02/15 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
微信小程序 动态传参实例详解
2017/04/27 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
python迭代器的使用方法实例
2013/11/21 Python
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
施工安全协议书
2013/12/11 职场文书
本科生的职业生涯规划范文
2014/01/09 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
陪护人员误工证明
2015/06/24 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书