在插件的源代码里插入如下代码:

  1. (function(jQuery){
  2.  
  3. if(jQuery.browser) return;
  4.  
  5. jQuery.browser = {};
  6. jQuery.browser.mozilla = false;
  7. jQuery.browser.webkit = false;
  8. jQuery.browser.opera = false;
  9. jQuery.browser.msie = false;
  10.  
  11. var nAgt = navigator.userAgent;
  12. jQuery.browser.name = navigator.appName;
  13. jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion);
  14. jQuery.browser.majorVersion = parseInt(navigator.appVersion,10);
  15. var nameOffset,verOffset,ix;
  16.  
  17. // In Opera, the true version is after "Opera" or after "Version"
  18. if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
  19. jQuery.browser.opera = true;
  20. jQuery.browser.name = "Opera";
  21. jQuery.browser.fullVersion = nAgt.substring(verOffset+6);
  22. if ((verOffset=nAgt.indexOf("Version"))!=-1)
  23. jQuery.browser.fullVersion = nAgt.substring(verOffset+8);
  24. }
  25. // In MSIE, the true version is after "MSIE" in userAgent
  26. else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
  27. jQuery.browser.msie = true;
  28. jQuery.browser.name = "Microsoft Internet Explorer";
  29. jQuery.browser.fullVersion = nAgt.substring(verOffset+5);
  30. }
  31. // In Chrome, the true version is after "Chrome"
  32. else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
  33. jQuery.browser.webkit = true;
  34. jQuery.browser.name = "Chrome";
  35. jQuery.browser.fullVersion = nAgt.substring(verOffset+7);
  36. }
  37. // In Safari, the true version is after "Safari" or after "Version"
  38. else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
  39. jQuery.browser.webkit = true;
  40. jQuery.browser.name = "Safari";
  41. jQuery.browser.fullVersion = nAgt.substring(verOffset+7);
  42. if ((verOffset=nAgt.indexOf("Version"))!=-1)
  43. jQuery.browser.fullVersion = nAgt.substring(verOffset+8);
  44. }
  45. // In Firefox, the true version is after "Firefox"
  46. else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
  47. jQuery.browser.mozilla = true;
  48. jQuery.browser.name = "Firefox";
  49. jQuery.browser.fullVersion = nAgt.substring(verOffset+8);
  50. }
  51. // In most other browsers, "name/version" is at the end of userAgent
  52. else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <
  53. (verOffset=nAgt.lastIndexOf('/')) )
  54. {
  55. jQuery.browser.name = nAgt.substring(nameOffset,verOffset);
  56. jQuery.browser.fullVersion = nAgt.substring(verOffset+1);
  57. if (jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()) {
  58. jQuery.browser.name = navigator.appName;
  59. }
  60. }
  61. // trim the fullVersion string at semicolon/space if present
  62. if ((ix=jQuery.browser.fullVersion.indexOf(";"))!=-1)
  63. jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);
  64. if ((ix=jQuery.browser.fullVersion.indexOf(" "))!=-1)
  65. jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);
  66.  
  67. jQuery.browser.majorVersion = parseInt(''+jQuery.browser.fullVersion,10);
  68. if (isNaN(jQuery.browser.majorVersion)) {
  69. jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion);
  70. jQuery.browser.majorVersion = parseInt(navigator.appVersion,10);
  71. }
  72. jQuery.browser.version = jQuery.browser.majorVersion;
  73. })(jQuery);

解决jquery1.9不支持browser对象的问题||TypeError: $.browser is undefined的更多相关文章

  1. HTML BOM Browser对象

    BOM:Browser Object Model,即浏览器对象模型,提供了独立于内容的.可以与浏览器窗口进行互动的对象结构. Browser对象:指BOM提供的多个对象,包括:Window.Navig ...

  2. Browser 对象

    Browser 对象 window对象表示浏览器中打开的窗口如果文档包含框架(iframe 或 iframe标签),浏览器会为HTML文档创建一个window对象,并为每个框架创建一个额外的windo ...

  3. JSON支持什么对象/类型?

    原文:JSON支持什么对象/类型? 当一个面试官问你: JSON都支持什么对象/类型?你怎么回答? 也许他的本意是下面这个答案: JSON格式支持的数据类型有以下: 类型 描述 Number 在Jav ...

  4. HTML:Browser 对象

    ylbtech-HTML:Browser 对象 1.返回顶部 1. Window 对象 Window 对象表示浏览器中打开的窗口. 如果文档包含框架(frame 或 iframe 标签),浏览器会为 ...

  5. JavaScript:Browser 对象

    ylbtech-JavaScript:Browser 对象 1.  Window 对象返回顶部 1. Window 对象 Window 对象 Window 对象表示浏览器中打开的窗口. 如果文档包含框 ...

  6. Java经典实例:进阶版堆栈实现,支持任何对象类型

    支持任何对象类型,有更多的错误检查. package Stack; /** * Created by Frank */ public class MyStack<T> implements ...

  7. 让FineUI数据绑定支持dynamic对象

    FineUI非常好用,但是有一个缺点,就是不支持dynamic对象的数据绑定.查了一下源代码,找了解决方案,其实只需要几行代码就可以搞定,这就是开源的好处. 本想直接在CodePlex上贡献代码,但不 ...

  8. 终于解决了IE8不支持数组的indexOf方法,array的IndexOf方法

    /* 终于解决了IE8不支持数组的indexOf方法 */ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (el ...

  9. 解决Apache CXF 不支持传递java.sql.Timestamp和java.util.HashMap类型问题

    在项目中使用Apache开源的Services Framework CXF来发布WebService,CXF能够很简洁与Spring Framework 集成在一起,在发布WebService的过程中 ...

随机推荐

  1. Linux 查找文件

    find 查找目录 -name "文件名"find / -name "php.ini"locate 文件名locate php.ini 一:locate命令 l ...

  2. Random Javascript code snippets

    MollyPages.org"You were wrong case.To live here is to live." Home Pages / Database / Forms ...

  3. sql 2012 操作EXCEL 2013

    确认是否有Microsoft.ACE.OLEDB.12.0数据接口 --进行配置: EXEC sp_configure 'show advanced options', 1 GO RECONFIGUR ...

  4. uploadify v3.2.1 上传报大量js 类似__flash__addCallback(document.getElementById("SWFUpload_0"), "ReturnUploadStart"); 错误

    报__flash__addCallback未定义 报__flash__removeCallback未定义 最后解决方法:  uploadify  提供了destroy方法,每次使用完后,清空就可以了. ...

  5. 扫盲贴000---关于python中的if __name__ == '__main__'

    对于python中的__name__变量,根据调用python文件的方式不同,__name__变量的值也会不同.假如我有一个名为hello_world.py的python脚本,当我的目的是直接运行这个 ...

  6. JDBC步骤

    总结JDBC五步骤: 1.Class.forName 加载驱动 2.conn = (Connection) DriverManager.getConnection(url, user, passwor ...

  7. Linux课程实践二:编译模块实现内核数据操控

    一.内核模块原理 1. Linux内核增加功能 Linux内核整体结构很庞大,包含了很多的组件,现在有两种方法将需要的功能包含进内核当中: - 静态加载:将所有的功能都编译进Linux内核. - 动态 ...

  8. Java for循环的几种用法

    J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象.本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类 ...

  9. 搭建MySQL MHA高可用

    本文内容参考:http://www.ttlsa.com/mysql/step-one-by-one-deploy-mysql-mha-cluster/ MySQL MHA 高可用集群 环境: Linu ...

  10. cocos2d-x学习

    http://www.cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game Cocos2d-x版本:cocos2d-x-3.6 一.设置脚本参数 1 ...