2017-02-10 1 views
0

Einige Funktionen meiner Website funktionieren nicht mit Opera Mini, aber sie funktionieren mit Opera. Gibt es eine Möglichkeit, die Unterschiede zwischen diesen beiden Browsern in JavaScript zu unterscheiden, sodass ich Personen daran hindern kann, auf bestimmte Seiten meiner Website zuzugreifen?So machen Sie einen Unterschied zwischen Opera und Opera Mini in JavaScript

Ich habe window.navigator.userAgent.indexOf versucht ('Opera Mini /'), aber es funktioniert auch für Opera ... Object.prototype.toString.call (window.operamini) === „[object Operamini]“funktioniert nicht bei allen

+0

'var isOperaMini = (navigator.userAgent.indexOf ('Opera Mini')> -1);' gibt True für Opera zurück? Woher? – imudin07

+0

, dass Teile des Codes für beide falsch zurückgibt ... window.navigator.userAgent.indexOf ('Opera Mini /') gibt wahr für beide – MickeyKSP

+0

natürlich gibt es wahr, müssen Sie vergleichen mit -1 – imudin07

Antwort

0

Opera Mini 3 Modi für große Plattformen (iOS, Android):

  1. Standardmodus - ohne Komprimierung
  2. Hohe Sparmodus - komprimieren Inhalt nur (Bilder , Video und usw.)
  3. Extremmodus - volle Kompres sion OBLM

Nur extremen Modus ist in anderen Fällen echte Opera Mini, mit Opera Mini Standard-Browser-Engine, aber mit einem zusätzlichen Buchstaben OPR/ in User-Agenten-String verwendet.

Sie müssen nur window.operamini für extremen Modus und OPR/ in Benutzer-Agent-Zeichenfolge für andere Modi zu überprüfen.

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

Das ist alles. Das ist der einzige Weg.