1

Webkit 以外の Opera は一部の機能が非常に特殊であるため、通常は次の方法で JavaScript を介して検出されました。

ただし、Opera Next はほとんど Google Chrome のクローンのようです。

古い Opera をターゲットにして、Opera Next をターゲットにしないにはどうすればよいですか?


PS: ブラウザの検出と機能の検出ルールがうまくいかないことは本当に知っています。しかし、大量のコードを機能検出パラダイムに書き直すのではなく、小さなブラウザー検出パッチで大規模で実行中のプロジェクトを更新したいと考えています。

4

1 に答える 1

2

問題の原因を見つけました。そのプロジェクトでは、ブラウザの検出が不良でした。質問にあるリンクとまったく同じように Opera を検出した場合、Opera Next は Opera として検出されないため、Old-Opera-Specific コードは実行されず、代わりに Chrome-Specific-Code が実行されます。

 !!window.opera;                      // true in old Opera, false in Opera Next

 navigator.userAgent.indexOf("Opera");//   -------    the same    --------

PS: 幸いなことに、私は自分のプロジェクトで多くのテストを行っているので、新しい Opera でも Google Chrome とまったく同じように機能していると言えます。

Opera Old AND Opera Next を検出しようとした問題の原因となったコード:

/(Opera|OPR)/.test(navigator.userAgent)

結論: Opera の移行は非常にうまく行われました。プロジェクトで問題が発生することはありません。Opera Next を検出せず、通常の Google Chrome として扱います。

更新: 以前のバージョンの Opera は caniuse.com から削除されていました

于 2013-07-29T11:54:20.613 に答える