使用Javascript进行Opera Mini浏览器检测

Adh*_*llo 4 html javascript

我为我的网站编写了一个javascript代码,用于检测它是否在移动设备上的Opera Mini浏览器上运行.由于Opera Mini具有数据保存功能,因此启用它时有时无法正确加载站点,因此我想通过检测所使用的浏览器是否为Opera Mini来显示消息.

下面发布的代码适用于iOS上的Opera Mini,但它不适用于Android.任何建议使代码也适用于Android上的Opera Mini?

<script type="text/javascript">
 function o(){
   var isMobile = {
    Opera: function() {
        return navigator.userAgent.match(/Opera Mini/i);
                      },
                  };
     if( isMobile.Opera() ) alert('If you are using Opera Mini please disable Data Savings Mode to Have a pleasant browsing experience :)');
             }
 window.onload = o;
</script>
Run Code Online (Sandbox Code Playgroud)

小智 5

从来没有听说过Opera Mini,但我确实谷歌了,发现了https://dev.opera.com/articles/opera-mini-and-javascript/.基本上,她正在使用用户代理字符串来确定它是否为opera mini

var isOperaMini = (navigator.userAgent.indexOf('Opera Mini') > -1);
Run Code Online (Sandbox Code Playgroud)

这与你的方法非常相似.

但是,她还建议您可以使用window对象来确定这一点."Opera Mini还包含一个operamini对象作为窗口对象的属性.要检查是否存在此对象,请使用以下代码."

var isOperaMini = Object.prototype.toString.call(window.operamini) === "[object OperaMini]"
Run Code Online (Sandbox Code Playgroud)

如果你仍然无法让它工作,我会提出另一种方法.通过尝试使用保存功能进行保存来解决此问题,如果失败,请使用您打算使用的任何后备保存功能.因此,只要它是opera mini,它就能够使用数据保存功能,但是当它不是opera mini时,它将使用替代功能.想想这里的尝试/捕获.当然,您也希望在检索保存的数据时考虑实现.