最近把一个项目的jQuery升级到最新版,发现有些页面报错Cannot read property ‘msie’ of undefined。上jQuery网站上搜了一下,$.browser这个api从jQuery1.9开始就被废除了,所以js代码里只要用到$.browser就会报这个错。
深入挖掘了一下,发现jQuery1.9里把所有以前版本里标记为deprecated的API给正式删除了,可谓壮士断臂。对于升级到最新jQuery的开发者而言,这意味着得花费一些额外的时间把代码升级使用新的api或者自己实现那些在jQuery库里被删除的方法。幸运的是,jQuery团队考虑到了这个改动做给开发人员带来的麻烦,推出了一个插件jQuery Migration,使用这个插件自动恢复那些在最新版本里之后被废弃或者删除的API,从而让已有的js代码无须改动就能和最新的jQuery库一起正常运行。
下面是具体的解决方法,先下载最新的jQuery Migration,然后在引用jQuery的地方之后加上一行对jQuery Migration的引用即可。
<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>