[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法 --转

初用Yii的srbac模块。出现 Cannot read property ‘msie’ of undefined 错误。上网查询,找到如下的文章。使用文末的打补丁的方法,成功搞定。感谢。

===============================

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

最近把一个项目的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;}})();
时间: 2024-10-10 09:30:06

[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法 --转的相关文章

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的童鞋而

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

使用ztree时候没有用默认的1.4版本jquery,报错Cannot read property ‘msie’ of undefined $.browser这个api从jQuery1.9开始就正式废除,js代码用到$.browser就会报这个错.详细说明参见官方说明 解决方法加入下面代码,jQuery文件加载之后,使用$.browser的代码之前. jQuery.browser={};(function(){jQuery.browser.msie=false; jQuery.browser.v

jquery错误: Cannot read property ‘msie’ of undefined

背景 Web application, 引用了jquery 1.10.2和fancybox 1.3.4 现象 访问页面遭遇Cannot read property ‘msie’ of undefined的报错 原因 fancybox尝试使用$.browser, 但$.browser从jQuery1.9开始就正式废除,因此报错 解决办法 下载jquery-migrate-1.2.2,在引用jquery库之后引用jquery-migrate,错误解决 <script src="http://c

Uncaught TypeError: Cannot read property &#39;msie&#39; of undefined

Uncaught TypeError: Cannot read property 'msie' of undefined 因为图方便,抄了别人写的一个jquerry插件,运行时“var pos = ($.browser.msie && parseInt($.browser.version) <= 6 ) ? 'absolute' : 'fixed'; ”报了Uncaught TypeError: Cannot read property 'msie' of undefined的错误.

获取判断IE版本 TypeError: Cannot read property &#39;msie&#39; of undefined

注意:一下方法只适用于IE11 以下: TypeError: Cannot read property 'msie' of undefined jquery1.9去掉了 $.browser  所以报错 官方说明 : https://api.jquery.com/jQuery.browser/ 1 大佬的贴:   https://stackoverflow.com/questions/14892095/browser-msie-error-after-update-to-jquery-1-9-1

Uncaught TypeError: Cannot set property &#39;f7View&#39; of undefined 错误原因

// 添加视图var mainView = myApp.addView('.view-main', { // 因为我们要用动态的导航栏,我们需要使它的这一观点: dynamicNavbar: true});// 添加视图var mainView4 = myApp.addView('.view-main4', { // 因为我们要用动态的导航栏,我们需要使它的这一观点: dynamicNavbar: true}); 错误原因,多了一个添加视图,删除一个就好 Uncaught TypeError:

Cannot read property &#39;defaultView&#39; of undefined 报错解决

当我们在一个事件方法中去使用$.ajax进行数据交互时 $('.btn_box').click(function() { $.ajax({ type: 'post', url: '', dataType: 'json', contentType: 'application/json; charset=utf-8', async: false, success: function(res) { console.log($(this)) } }) }) 此时在console 会报如标题一样的错误,

Jquery中使用setInterval和setTimeout会提示缺少对象的错误,解决方法如下:

直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下: 方法1. 应用jQuery的扩展可以解决这个问题. $(document).ready(function(){ $.extend({  show:function(){   alert("ready");  }});setInterval("show()",3000);}); 方法2. 指定定时执行的函数时不要使用引号和括号.  $(function(){function show(){   al

ECLIPSE中部署工程报“Undefined exploded archive location”错误的解决方法。

错误信息为:Undefined exploded archive location 原因:在工程转移过程中,导致工程的配置文件出错: 解决方法:           1.在工程目录下的.mymetadata文件中可能webrootdir被改无效了(把下面内容拷到你的.mymetadate文件中的相应位置上):或者有可能少了这context-root这个属性:添加上这个属性即可,内容如下:             context-root="/上面的name属性值"