$.browser.msie 为空或不是对象问题的多种解决方法
发布时间 - 2026-01-11 00:14:53 点击率:次'$.browser.msie' 为空或不是对象,这个是jQuery错误
出现这个错误,是因为升级了jQuery版本,从1.9以前升级到1.9以后,因为$.browser.msie在1.9以后的jQuery中不存在了,所以报错。

jQuery 1.9 移除了 $.browser 的替代方法
$.browser是通过正则表达式来匹配userAgent来判断浏览器版本和种类的.jquery1.3.2版本的文档中已经声明jquery.browser及jquery.browser.version建议弃用,可以使用jquery.support来代替。
jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9或者jQuery 1.10.1等。 如果要全面支持 IE,并混合使用 jQuery 1.9 和 2.0, 官方的解决方案是:
解决方法一:
<!--[if lt IE 9]> <script src='/jquery-1.10.1.min.js'></script> <![endif]--> <!--[if gte IE 9]> <script src='/jquery-2.0.2.min.js'></script> <![endif]-->
解决方法二:
就是不要用$.browser.msie来判断,在网上找了一些能够直接替换的解决办法
$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase()); $.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase()); $.browser.opera = /opera/.test(navigator.userAgent.toLowerCase()); $.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());
等号后面的表达式返回的就是 true/false, 可以直接用来替换原来的 $.browser.msie 等。
检查是否为 IE6:
// Old
if ($.browser.msie && 7 > $.browser.version) {}
// New
if ('undefined' == typeof(document.body.style.maxHeight)) {}
检查是否为 IE 6-8:
$.support.leadingWhitespace为IE中特有的属性,因此可以利用$.support.leadingWhitespace来判断浏览器是否是IE6-8
代码一
if (!$.support.leadingWhitespace) {}
代码二
$(function($){
var ieFlag= $.support.leadingWhitespace;//定义判断IE8的变量
if(!ieFlag){//IE8以下
//IE代码
}else{
//其他代码
}
});
解决方法三
/*后发现的判断浏览器类型通用类型*/老外写的一篇文章,在IE、Firefox、Google下亲测可用
原文地址:http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser
// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';
alert("isFirefox:"+isFirefox);
// Opera 8.0+
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
alert("isOpera:"+isOpera);
// Safari <= 9 "[object HTMLElementConstructor]"
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
alert("isSafari:"+isSafari);
// Internet Explorer 6-11
var isIE = /*@cc_on!@*/ false || !!document.documentMode;
alert("isIE:"+isIE);
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
alert("isEdge:"+isEdge);
// Chrome 1+
var isChrome = !!window.chrome && !!window.chrome.webstore;
alert("isChrome:"+isChrome);
// Blink engine detection(7)
var isBlink = (isChrome || isOpera) && !!window.CSS;
alert("isBlink:"+isBlink);
解决方法四:
最近把一个项目的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;}})();
以上就是小编整理的解决方法了,大家可以根据项目需要选择比较简单的。
# $.browser.msie
# 为空或不是对象
# 解决jquery插件:TypeError:$.browser is undefined报错的方法
# jQuery 1.9移除了$.browser可以使用$.support来替代
# jQuery 1.9使用$.support替代$.browser的使用方法
# jQuery下通过$.browser来判断浏览器.
# JQuery下的Live方法和$.browser方法使用代码
# 解决方法
# 的是
# 升级到
# 会报
# 移除
# 童鞋
# 是因为
# 就能
# 不喜欢
# 可以直接
# 找了
# 请注意
# 可以使用
# 报错
# 一个叫
# 可以根据
# 取而代之
# 最新版本
# 可以利用
# 解决办法
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Python文件操作最佳实践_稳定性说明【指导】
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
如何快速上传自定义模板至建站之星?
大连网站制作公司哪家好一点,大连买房网站哪个好?
网站制作企业,网站的banner和导航栏是指什么?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Android 常见的图片加载框架详细介绍
javascript基于原型链的继承及call和apply函数用法分析
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
iOS验证手机号的正则表达式
Laravel如何与Pusher实现实时通信?(WebSocket示例)
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Laravel如何处理CORS跨域请求?(配置示例)
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
如何在宝塔面板中创建新站点?
java中使用zxing批量生成二维码立牌
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
Laravel Fortify是什么,和Jetstream有什么关系
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
python中快速进行多个字符替换的方法小结
网站制作免费,什么网站能看正片电影?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
网站制作大概多少钱一个,做一个平台网站大概多少钱?
制作企业网站建设方案,怎样建设一个公司网站?
进行网站优化必须要坚持的四大原则
网站优化排名时,需要考虑哪些问题呢?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
html如何与html链接_实现多个HTML页面互相链接【互相】
网站制作软件有哪些,制图软件有哪些?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
七夕网站制作视频,七夕大促活动怎么报名?
晋江文学城电脑版官网 晋江文学城网页版直接进入
如何在阿里云部署织梦网站?
如何快速搭建安全的FTP站点?
iOS中将个别页面强制横屏其他页面竖屏
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
如何用PHP快速搭建CMS系统?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Python3.6正式版新特性预览
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
香港服务器部署网站为何提示未备案?
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
如何在万网主机上快速搭建网站?

