解决jquery插件:TypeError:$.browser is undefined报错的方法


Posted in Javascript onNovember 21, 2015

首先先说一说$.browser
browser就是用来获取浏览器基本信息的。
jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。
解决方法:加入以下js即可

(function(jQuery){  
 
if(jQuery.browser) return;  
 
jQuery.browser = {};  
jQuery.browser.mozilla = false;  
jQuery.browser.webkit = false;  
jQuery.browser.opera = false;  
jQuery.browser.msie = false;  
 
var nAgt = navigator.userAgent;  
jQuery.browser.name = navigator.appName;  
jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion);  
jQuery.browser.majorVersion = parseInt(navigator.appVersion,10);  
var nameOffset,verOffset,ix;  
 
// In Opera, the true version is after "Opera" or after "Version"  
if ((verOffset=nAgt.indexOf("Opera"))!=-1) {  
jQuery.browser.opera = true;  
jQuery.browser.name = "Opera";  
jQuery.browser.fullVersion = nAgt.substring(verOffset+6);  
if ((verOffset=nAgt.indexOf("Version"))!=-1)  
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);  
}  
// In MSIE, the true version is after "MSIE" in userAgent  
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {  
jQuery.browser.msie = true;  
jQuery.browser.name = "Microsoft Internet Explorer";  
jQuery.browser.fullVersion = nAgt.substring(verOffset+5);  
}  
// In Chrome, the true version is after "Chrome"  
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {  
jQuery.browser.webkit = true;  
jQuery.browser.name = "Chrome";  
jQuery.browser.fullVersion = nAgt.substring(verOffset+7);  
}  
// In Safari, the true version is after "Safari" or after "Version"  
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {  
jQuery.browser.webkit = true;  
jQuery.browser.name = "Safari";  
jQuery.browser.fullVersion = nAgt.substring(verOffset+7);  
if ((verOffset=nAgt.indexOf("Version"))!=-1)  
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);  
}  
// In Firefox, the true version is after "Firefox"  
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {  
jQuery.browser.mozilla = true;  
jQuery.browser.name = "Firefox";  
jQuery.browser.fullVersion = nAgt.substring(verOffset+8);  
}  
// In most other browsers, "name/version" is at the end of userAgent  
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <  
(verOffset=nAgt.lastIndexOf('/')) )  
{  
jQuery.browser.name = nAgt.substring(nameOffset,verOffset);  
jQuery.browser.fullVersion = nAgt.substring(verOffset+1);  
if (jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()) {  
jQuery.browser.name = navigator.appName;  
}  
}  
// trim the fullVersion string at semicolon/space if present  
if ((ix=jQuery.browser.fullVersion.indexOf(";"))!=-1)  
jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);  
if ((ix=jQuery.browser.fullVersion.indexOf(" "))!=-1)  
jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);  
 
jQuery.browser.majorVersion = parseInt(''+jQuery.browser.fullVersion,10);  
if (isNaN(jQuery.browser.majorVersion)) {  
jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion);  
jQuery.browser.majorVersion = parseInt(navigator.appVersion,10);  
}  
jQuery.browser.version = jQuery.browser.majorVersion;  
})(jQuery);

将以上js另存为browser.js然后在jsp中引入即可。

这是小编找到的一种解决方法,还没有实验,先分享给大家,希望对大家解决jquery插件报错问题有所收获吧。

Javascript 相关文章推荐
点击广告后才能获得下载地址
Oct 26 Javascript
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
May 25 Javascript
jquery入门—数据删除与隔行变色以及图片预览
Jan 07 Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 Javascript
浅谈javascript中基本包装类型
Jun 03 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
Dec 08 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 Javascript
localStorage的黑科技-js和css缓存机制
Feb 06 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
May 16 Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 Javascript
Vue项目引发的「过滤器」使用教程
Mar 12 Javascript
原生js实现碰撞检测
Mar 12 Javascript
jquery实现select选择框内容左右移动代码分享
Nov 21 #Javascript
分享经典的JavaScript开发技巧
Nov 21 #Javascript
jQuery实现分隔条左右拖动功能
Nov 21 #Javascript
超详细的javascript数组方法汇总
Nov 21 #Javascript
javascript实现动态统计图开发实例
Nov 21 #Javascript
js实现索引图片切换效果
Nov 21 #Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 #Javascript
You might like
Protoss建筑一览
2020/03/14 星际争霸
PHP中的正规表达式(二)
2006/10/09 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
Python中的模块和包概念介绍
2015/04/13 Python
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
linux安装python修改默认python版本方法
2019/03/31 Python
简单了解python中对象的取反运算符
2019/07/01 Python
在django中自定义字段Field详解
2019/12/03 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
如何手工释放资源
2013/12/15 面试题
公司营业员的自我评价
2014/03/04 职场文书
疾病防治方案
2014/05/31 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
关于感谢信的范文
2015/01/23 职场文书
十七岁的单车观后感
2015/06/12 职场文书
新郎新娘致辞
2015/07/31 职场文书
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫