解决jquery1.9不支持browser对象的问题


Posted in Javascript onNovember 13, 2013

最近因项目需要,要用jquery的cycle插件,但是项目里面一直用的都是jquery1.9,不支持browser对象,百度一下,找到了解决方案。

在cycle插件的源码里面直接加上下面这段代码就可以了:

(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);

这段代码是专门解决browser对象不被支持的问题的。
Javascript 相关文章推荐
syntaxhighlighter 使用方法
Jul 02 Javascript
jquery构造器的实现代码小结
May 16 Javascript
js常用数组操作方法简明总结
Jun 20 Javascript
原生js实现百叶窗效果及原理介绍
Apr 12 Javascript
jquery插件格式实例分析
Jun 16 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
Jun 21 Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
javascript深拷贝的原理与实现方法分析
Apr 10 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
Nov 13 Javascript
微信小程序实现简单文字跑马灯
May 26 Javascript
js获取IFRAME当前的URL的方法
Nov 13 #Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
Nov 13 #Javascript
常见表单重复提交问题整理及解决方法
Nov 13 #Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 #Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
Nov 13 #Javascript
jquery validate在ie8下的bug解决方法
Nov 13 #Javascript
JQuery伸缩导航练习示例
Nov 13 #Javascript
You might like
php小技巧之过滤ascii控制字符
2014/05/14 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PDO::prepare讲解
2019/01/29 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
js获取数组的最后一个元素
2015/04/14 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
js实现移动端轮播图滑动切换
2020/12/21 Javascript
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python continue语句用法实例
2014/03/11 Python
详解在Python中处理异常的教程
2015/05/24 Python
深入理解python对json的操作总结
2017/01/05 Python
python实现两个文件夹的同步
2019/08/29 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
好学生评语大全
2014/05/05 职场文书
元旦趣味活动方案
2014/08/22 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技