トップ回答者
IE11 と appName=="Microsoft Internet Explorer"

質問
-
私の記述した .htm の中の JavaScript に次の記述があります。
if(navigator.appName=="Microsoft Internet Explorer"){ 略 }else{ 略 }
IE9 まではこの記述でうまく行ってました。IE10でもうまく行っていたはずです。自分のパソコンで、今日IE11に更新インストールしました。
IE11では、 Microsoft Internet Explorer ではない別文字が返って来るようで、動作が正しく行きません。
IE11では何という文字が返って来るのでしょうか?
IE11のとき、F12キーを押してのツールで、何という文字が返って来るか調べる方法があるのでしょうか?
回答
-
IE11 でも、他の Web ブラウザーに合わせて "Netscape" が返ってくるようになりました。これは Chrome も Firefox でも同じです。
F12 開発者ツールをつかって、実際にどんな値が返ってくるのかを確認することもできます。
その場合、添付キャプチャーを参考に、任意の Web ページを開いた後、F12 キーで F12開発者ツールを開いた後、一番下の入力領域に「navigator.appName」と入れてみてください。
なお、最近の Web 開発では、 「navigator.userAgent 等から返される文字列を利用してブラウザーを振り分ける」ということはお勧めされていません。
フィーチャーディテクション(機能判定)をつかい、
- ~の機能に対応していれば~をする
- ~に対応していなければ代わりに~する
といった方法がよくとられます。フィーチャーディテクションを行うには、modernizr という JS ライブラリーが便利です。
例
if ( Modernizr.video ) { // HTML5 Video を再生するなど } else { // Flash を再生するなど }
- 編集済み yomotsuMVP 2013年11月23日 15:25
- 回答の候補に設定 星 睦美 2013年11月25日 0:36
- 回答としてマーク 星 睦美 2013年11月28日 7:28
すべての返信
-
IE11 でも、他の Web ブラウザーに合わせて "Netscape" が返ってくるようになりました。これは Chrome も Firefox でも同じです。
F12 開発者ツールをつかって、実際にどんな値が返ってくるのかを確認することもできます。
その場合、添付キャプチャーを参考に、任意の Web ページを開いた後、F12 キーで F12開発者ツールを開いた後、一番下の入力領域に「navigator.appName」と入れてみてください。
なお、最近の Web 開発では、 「navigator.userAgent 等から返される文字列を利用してブラウザーを振り分ける」ということはお勧めされていません。
フィーチャーディテクション(機能判定)をつかい、
- ~の機能に対応していれば~をする
- ~に対応していなければ代わりに~する
といった方法がよくとられます。フィーチャーディテクションを行うには、modernizr という JS ライブラリーが便利です。
例
if ( Modernizr.video ) { // HTML5 Video を再生するなど } else { // Flash を再生するなど }
- 編集済み yomotsuMVP 2013年11月23日 15:25
- 回答の候補に設定 星 睦美 2013年11月25日 0:36
- 回答としてマーク 星 睦美 2013年11月28日 7:28