WebKit系Operaのブラウザ判別方法とか。
ブラウザエンジンを Presto から WebKit系へと変更した Opera 15 がリリースされています。
→ Opera ブラウザ(http://www.opera.com/ja/)
Windows版をインストールして試してみたところ、Opera 15 のユーザエージェントは、
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.130
…と、こんな具合。バージョン 12.x では以下のようなものでした。
Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.15
ぱっと見て判るように、
- 新しいOperaのユーザエージェントには "Opera" という文字列がない。
- 代わりに "OPR" という文字列が入る。
- "WebKit" や "Chrome" や "Safari" という文字列が入る。
というのが大きな違いです。
また、以前のバージョンには存在した window.opera というオブジェクトが、Opera 15では無くなっているっぽい。
なので、現在、JavaScriptなどでブラウザ判別を行っている場合、
- window.operaオブジェクトの有無で Opera を切り分けている。
- ユーザエージェント文字列("Opera" が含まれているかどうかなど)でブラウザを切り分けている。
…と、いずれの場合でも、新Opera は 旧Opera を切り分けるロジックには引っかからないというわけですね。言い換えると、既存の判別スクリプトに手を加えなくても、新・旧Opera は別物として処理される、と。
で、ここから先はスクリプトの組み方に依るのだけれど、おそらく既存のスクリプトでは、新Operaは「ChromeかSafariか、とにかくWebKit系ブラウザ」と判別されるのだと思います。
新Operaは「…とにかくWebKit系ブラウザ」なので、まあこのままでも問題は無いのだろうけれど、どうしても新Operaを検出したい! というときは、「ユーザエージェントに "OPR" という文字列が含まれるかどうか」で判定できますね。バージョンまで知りたいときは、文字列 "OPR/" に続く数字を取得すれば良いわけです。
コメント