V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
yeqiu
V2EX  ›  问与答

对于浏览器版本,怎么判断?

  •  
  •   yeqiu · Sep 7, 2014 · 3707 views
    This topic created in 4251 days ago, the information mentioned may be changed or developed.
    我做的系统支持谷歌浏览器,
    navigator.userAgent.toLowerCase().match(/chrome\/([\d.]+)/)
    所以我用了这个段代码判断是否为谷歌浏览器
    坑爹的是 在360 和 搜狗下竟然可以通过
    还有没有别的办法?》
    24 replies    2020-06-23 10:22:09 +08:00
    witcher42
        1
    witcher42  
       Sep 7, 2014   ❤️ 3
    我见过的最全的浏览器检测模块 http://aralejs.org/detector/
    yeqiu
        2
    yeqiu  
    OP
       Sep 7, 2014
    @witcher42 赞10086个
    learnshare
        3
    learnshare  
       Sep 7, 2014   ❤️ 1
    不建议判断浏览器类型及版本:

    1. 如果 JS 里需要测试是否支持某个功能,直接 if(functionx) 即可;
    2. 如果需要写特殊的 CSS,可以用 “渐进增强” 的方法,保持低级浏览器的显示效果,高级浏览器中增加效果即可;
    3. 也可以用 <!--[if IE 9]> 这种条件写法,来专门为 IE 做 hack。
    yeqiu
        4
    yeqiu  
    OP
       Sep 7, 2014
    @learnshare
    谢谢,学到了
    emric
        5
    emric  
       Sep 7, 2014
    yeqiu
        6
    yeqiu  
    OP
       Sep 7, 2014
    @emric 额,我们的系统是属于进销存,所以不需要这么复杂的控制。 还是谢谢了
    omi4399
        7
    omi4399  
       Sep 7, 2014
    360 和 搜狗本来就是 chrome 内核可以通过是肯定的,而且也应该兼容才对
    yeqiu
        8
    yeqiu  
    OP
       Sep 7, 2014
    @omi4399

    http://baike.baidu.com/view/1369399.htm

    Google Chrome、360极速浏览器以及搜狗浏览器高速模式也使用webkit作为内核(在脚本理解方面,Chrome使用自己研发的V8引擎)。


    所以我的程序不兼容360 和搜狗
    loading
        9
    loading  
       Sep 7, 2014
    @yeqiu 我只能说您太牛了,做到了只兼容v8,连近亲webkit都不行!
    learnshare
        10
    learnshare  
       Sep 7, 2014
    @yeqiu 你的应该是不兼容 360 的兼容模式吧,那是 IE7/8 的问题
    JoyNeop
        11
    JoyNeop  
       Sep 7, 2014
    支持 V8 不支持 Nitro JavaScript 和 javascriptcore…… 屌炸……
    yeqiu
        12
    yeqiu  
    OP
       Sep 7, 2014
    @loading
    @learnshare
    @JoyNeop

    谷歌浏览器在js解析方面用的是v8,而其它的两个并不是v8,所以我写的js在谷歌和360上面效果是不一样的。
    嘈点在哪?
    omi4399
        13
    omi4399  
       Sep 7, 2014
    @yeqiu 槽点在于只支持 chrome,不会连 Opera 都不支持吧?
    yeqiu
        14
    yeqiu  
    OP
       Sep 7, 2014
    @omi4399

    就如同以前银行只支持IE一样
    omi4399
        15
    omi4399  
       Sep 7, 2014
    @yeqiu 这得有多大的勇气才能这样。。。。
    yeqiu
        16
    yeqiu  
    OP
       Sep 7, 2014
    @omi4399
    给企业做软件和做互联网产品的区别尽显于此
    learnshare
        17
    learnshare  
       Sep 7, 2014
    @yeqiu 肯定是用到了什么了不得的 API,否则一般兼容性问题只出现在 IE 和其他浏览器之间
    omi4399
        18
    omi4399  
       Sep 7, 2014
    @yeqiu 默默为楼主点赞。。。。果然企业用户不一般
    wsph123
        19
    wsph123  
       Sep 7, 2014 via iPhone
    叹为观止的企业用户
    jsonline
        20
    jsonline  
       Sep 7, 2014 via Android
    比 IE only 还奇葩
    loading
        21
    loading  
       Sep 7, 2014 via Android
    细想也对,我也是内部企业开发的,我用Firefox开发,如果是ie我就提示Firefox下载,目前看来我也要这样玩!!


    但我是对CSS没信心~

    楼主是js,楼主的js水平怕是甩我几百光年吧~~
    pysama
        22
    pysama  
       Sep 8, 2014
    UA可以伪造。
    建议用特性判断,可以参考jQuery的support实现。
    iawes
        23
    iawes  
       Jun 23, 2020
    @witcher42 这个怎么用?能根据 UA 区分是浏览器还是应用吗
    iawes
        24
    iawes  
       Jun 23, 2020
    @emric 这个怎么用呢?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4964 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 09:51 · PVG 17:51 · LAX 02:51 · JFK 05:51
    ♥ Do have faith in what you're doing.