jquery升级到新版本报错[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的童鞋而言,这break change意味着得花费一些额外的时间把迁移应用层代码到新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;}})();


原文地址:http://blchen.com/jquery-can-not-read-property-msie-of-the-undefined-error-solution/

相关文章
|
26天前
|
iOS开发
部分库不支持32位系统archive报错:Undefined symbols for architecture armv7
部分库不支持32位系统archive报错:Undefined symbols for architecture armv7
21 0
|
1月前
webpack版本问题 Cannot read property ‘createHash‘ of undefined
webpack版本问题 Cannot read property ‘createHash‘ of undefined
|
1月前
|
iOS开发 MacOS
TypeError: Cannot read property ‘shop‘ of undefined
TypeError: Cannot read property ‘shop‘ of undefined
17 0
|
1月前
|
机器学习/深度学习
TypeError: Cannot read property ‘name‘ of undefined at Qe.onShow
TypeError: Cannot read property ‘name‘ of undefined at Qe.onShow
24 0
|
1月前
|
JavaScript
报错 Cannot read properties of undefined(reading‘addEventListener‘)如何解决
报错 Cannot read properties of undefined(reading‘addEventListener‘)如何解决
52 1
|
1月前
|
小程序 开发者
【Hbuilder】Hbuilder Cannot read property ‘forceUpdate‘ of undefined
【Hbuilder】Hbuilder Cannot read property ‘forceUpdate‘ of undefined
24 0
|
1月前
|
缓存 JavaScript
报错:cannot read properties of undefined “reading url“
报错:cannot read properties of undefined “reading url“
|
JavaScript 前端开发
《jQuery、jQuery UI及jQuery Mobile技巧与示例》——3.4 技巧:更改property和attribute
使用attr(),可以更改HTML元素的attribute,比如rel、lang或者自定义的attribute。使用prop(),可以更改HTML元素的property。代码清单3-4演示了麻烦是怎么产生的。
1557 0
|
8月前
|
JavaScript
Jquery插件知识之Jquery.cookie实现页面传值
Jquery插件知识之Jquery.cookie实现页面传值
40 0
|
9月前
|
JavaScript
jQuery 插件自用列表
jQuery 插件自用列表
33 0