风の社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 5839|回复: 1
打印 上一主题 下一主题

[JavaScript] jQuery 1.9 移除了 $.browser 的替代方法

[复制链接]

449

主题

0

听众

1995

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    开心
    2012-9-12 10:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    楼主
    发表于 2013-6-9 14:30:51 |只看该作者 |倒序浏览
    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version ,取而代之的是 $.support 。在更新的 2.0 版本中,将不再支持 IE 6/7/8。以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。如果要全面支持 IE,并混合使用 jQuery 1.9 和 2.0,官方的解决方案是:

    <!--[if lt IE 9]>
        <script src='jquery-1.9.0.js'></script>
    <![endif]-->
    <!--[if gte IE 9]>
        <script src='jquery-2.0.0.js'></script>
    <![endif]-->

    从长久来看,这样有利于在复杂情况下根据浏览器特性进行分别处理,而不是简单的检测浏览器类型和版本。但目前很多旧程序的移植恐怕无法直接过渡为根据浏览器支持特性,所以在网上找了一些能够直接替换的解决办法。

    判断浏览器类型:

    $.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:

    if (!$.support.leadingWhitespace) {}

    终极方法是用另外的类库替代,比如 这个 ,但作者也不推荐使用浏览器类型和版本来进行判断。

    参考

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    转播转播0 分享分享0 收藏收藏0 支持支持0 反对反对0
    回复

    使用道具 举报

    449

    主题

    0

    听众

    1995

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    开心
    2012-9-12 10:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    沙发
    发表于 2013-6-9 14:33:11 |只看该作者
    Modernizr - 检测浏览器对HTML5和CSS3特性支持
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    Archiver|手机版|迦南的天空 ( 沪ICP备12037486号-1

    GMT+8, 2024-5-18 20:19 , Processed in 0.015562 second(s), 9 queries , Gzip On, Redis On.

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部