V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeqiu
V2EX  ›  问与答

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

  •  
  •   yeqiu · 2014-09-07 11:45:07 +08:00 · 3344 次点击
    这是一个创建于 3741 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我做的系统支持谷歌浏览器,
    navigator.userAgent.toLowerCase().match(/chrome\/([\d.]+)/)
    所以我用了这个段代码判断是否为谷歌浏览器
    坑爹的是 在360 和 搜狗下竟然可以通过
    还有没有别的办法?》
    24 条回复    2020-06-23 10:22:09 +08:00
    witcher42
        1
    witcher42  
       2014-09-07 11:52:13 +08:00   ❤️ 3
    我见过的最全的浏览器检测模块 http://aralejs.org/detector/
    yeqiu
        2
    yeqiu  
    OP
       2014-09-07 11:57:50 +08:00
    @witcher42 赞10086个
    learnshare
        3
    learnshare  
       2014-09-07 12:23:27 +08:00   ❤️ 1
    不建议判断浏览器类型及版本:

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

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

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


    所以我的程序不兼容360 和搜狗
    loading
        9
    loading  
       2014-09-07 14:28:49 +08:00
    @yeqiu 我只能说您太牛了,做到了只兼容v8,连近亲webkit都不行!
    learnshare
        10
    learnshare  
       2014-09-07 14:31:32 +08:00
    @yeqiu 你的应该是不兼容 360 的兼容模式吧,那是 IE7/8 的问题
    JoyNeop
        11
    JoyNeop  
       2014-09-07 14:49:33 +08:00
    支持 V8 不支持 Nitro JavaScript 和 javascriptcore…… 屌炸……
    yeqiu
        12
    yeqiu  
    OP
       2014-09-07 15:11:57 +08:00
    @loading
    @learnshare
    @JoyNeop

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

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


    但我是对CSS没信心~

    楼主是js,楼主的js水平怕是甩我几百光年吧~~
    pysama
        22
    pysama  
       2014-09-08 11:53:47 +08:00
    UA可以伪造。
    建议用特性判断,可以参考jQuery的support实现。
    iawes
        23
    iawes  
       2020-06-23 10:21:12 +08:00
    @witcher42 这个怎么用?能根据 UA 区分是浏览器还是应用吗
    iawes
        24
    iawes  
       2020-06-23 10:22:09 +08:00
    @emric 这个怎么用呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1025 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:35 · PVG 04:35 · LAX 12:35 · JFK 15:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.