2017-02-10 63 views
0

我的网站中的一些功能在Opera Mini上不起作用,但它们在Opera上运行。 有没有办法在JavaScript中区分这两种浏览器,这样我就可以阻止人们访问我网站的某些页面?我试过window.navigator.userAgent.indexOf('Opera Mini /'),但它也适用于Opera ... Object.prototype.toString.call(window.operamini)===“[object OperaMini的]”不工作的时候如何区分Opera和Opera Mini中的JavaScript

+0

'var isOperaMini =(navigator.userAgent.indexOf('Opera Mini')> -1);'对于Opera返回true?怎么来的? – imudin07

+0

对于这两个代码片段返回false ... window.navigator.userAgent.indexOf('Opera Mini /')对于 – MickeyKSP

+0

都返回true,当然它返回true,您需要与-1 – imudin07

回答

0

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

  1. 预设模式 - 无压缩
  2. 高储蓄模式 - 只压缩内容(图片,视频等)
  3. 极限模式 - 全压缩使用OBLM

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

所以你只需要检查window.operamini极端模式和OPR/在其他模式的用户代理字符串。

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

就这样。这是唯一的方法。