yeqiu
V2EX  ›  问与答

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

  •  
  •   yeqiu · Sep 7, 2014 · 4027 views
    This topic created in 4447 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
    witcher42
    Sep 7, 2014❤️3
    1
    我见过的最全的浏览器检测模块 http://aralejs.org/detector/
    yeqiu
    yeqiu
    OP
    Sep 7, 2014
    2
    @witcher42 赞10086个
    learnshare
    learnshare
    Sep 7, 2014❤️1
    3
    不建议判断浏览器类型及版本:

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

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

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


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

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

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


    但我是对CSS没信心~

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