如何在JavaScript中区分Opera和Opera Mini

时间:2017-02-10 13:20:08

标签: javascript html opera opera-mini

我网站上的一些功能在Opera Mini上不起作用,但它们适用于Opera。 有没有办法在JavaScript中区分这两个浏览器,以便我可以阻止人们访问我网站的某些页面?

我试过window.navigator.userAgent.indexOf('Opera Mini /'),但它也适用于Opera ... Object.prototype.toString.call(window.operamini)===“[object OperaMini]”根本不起作用

1 个答案:

答案 0 :(得分:0)

Opera Mini为主要平台(iOS,Android)使用3种模式:

  1. 默认模式 - 无压缩
  2. 高保存模式 - 仅压缩内容(图像,视频等)
  3. 极端模式 - 使用OBLM
  4. 进行完全压缩

    只有极端模式才是真正的Opera Mini,在其他情况下,Opera Mini使用默认浏览器引擎,但在用户代理字符串中还有一个字母OPR/

    因此,您只需要检查window.operamini的极端模式,并OPR/检查用户代理字符串中的其他模式。

    const isOperaMini = navigator.userAgent.indexOf('OPR/') !== -1;
    const isOperaMiniExtreme = isOperaMini && !!window.operamini;
    

    这就是全部。这是唯一的方法。