解决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 相关文章推荐
JavaScript中“基本类型”之争小结
Jan 03 Javascript
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
解决JavaScript数字精度丢失问题的方法
Dec 03 Javascript
jQuery使用$.each遍历json数组的简单实现方法
Apr 18 Javascript
利用纯Vue.js构建Bootstrap组件
Nov 03 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
Bootstrap 网格系统布局详解
Mar 19 Javascript
微信小程序开发之toast等弹框提示使用教程
Jun 08 Javascript
分享19个JavaScript 有用的简写写法
Jul 07 Javascript
AngularJS中filter的使用实例详解
Aug 25 Javascript
vue+element项目中过滤输入框特殊字符小结
Aug 07 Javascript
在layui中select更改后生效的方法
Sep 05 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
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
PHP 错误之引号中使用变量
2009/05/04 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
php对称加密算法示例
2014/05/07 PHP
PHP Cookie学习笔记
2016/08/23 PHP
js 设置选中行的样式的实现代码
2010/05/24 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
js异步编程小技巧详解
2017/08/14 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
Python实现把类当做字典来访问
2019/12/16 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
房展策划方案
2014/06/07 职场文书
法院答辩状格式
2015/05/22 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
运动会加油稿30字
2015/07/21 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python