【JavaScript】ブラウザ判定でIE11がTrident/7.0を返してくれないことがある!


IE11はMSIEじゃない!
IE11からMSIEの文字が消えたためIE11のブラウザ判定をする時にはtraidentを使うのは言うまでもなく有名かと思います!

しかしながらIE11でUser Agentを取得してきてtridentで判定をかませても何故か”trident/6.0″と返されてしまうことがありました。

僕はこれに1時間ほど悩まされたのでIE11を使っているにも関わらず”trident/6.0″が返って来てしまう理由について書きたいと思います。



デバッグがいけなかった
F12を押してデバッグツールを開いているのが原因でした。

そうなんです。
いつの間にそのような設定になっていたのかは不明瞭なのですがIE11のデバッグツールにてエミュレータが設定されていたのです。

“Edge”の”Windows Phone”モードになっておりました。
User Agentを眺めていて”Windows Phone”の文字を見つけまして「あれ?まさかこれじゃね?」と思ったら案の定。

おそらく稀なケースではありますが僕のようにIE11を触っている時に何故かTridentが”6.0″で返されてしまって原因が分からずに困っている方もいるのではないでしょうか?

凄く初歩的なミスですがなかなか気付けないものです。
是非Tridentの値が上手く返って来なかったら変なエミュレータが走っていないか確認してみてください。

尚Tridentの値がおかしくなるのは僕が認識しているかぎりではF12でデバッグツールを開いて設定したときのみです。
htmlのhead内でエミュレートを設定した場合にはしっかりとtrident/7.0が返ってくるのでここでIE11の判定をしてあげると安全かと思います!

※デバッグツールを使う際はしっかり”Edge”の”デスクトップ”を設定してあげましょう!


参考
歴代IEのUser Agentで取得できるMSIEやTridentの値が一覧になった便利なサイトを見つけたので掲載しておきます!

参考:IE の UserAgent まとめ (2) / galife様

スクリーンショット 2015-10-01 0.07.43


最後まで読んでいただきありがとうございます。もしこの記事を気に入って頂けたようであればシェアをお願い致します。非常に励みになります。


コメントを残す