最近在使用 Charisma 的时候,由于是使用的 yii框架,并且增加了 redactor 富文本编辑器,于是页面出现了“Cannot read property ‘msie’ of undefined”错误。
度娘后方知是$.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;}})();
如需转载请注明: 转载自26点的博客
转载请注明:26点的博客 » Cannot read property ‘msie’ of undefined 的解决方法
论文查重 http://www.cnkiceo.org/论文查重 http://www.cnkiceo.org/
哎呦,不错哦!欢迎互访! 诚交友链 站务申请:www.viplinger.cn
额 看明白了 谢谢分享
不错