JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
Q&A
2回答
1624閲覧
総合スコア112
0グッド
0クリップ
投稿2015/11/28 03:37
0
/trident 7/i.test(navigator.userAgent);
indexOfを使うのではなく、正規表現で判定したいのですが、これで判定可能でしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
そもそも論として、どのような事情で「JavaScript上でIE11だけを判定する」必要が生じたのでしょうか。
「IE11だけにあるバグを回避したい」ということでしたら、そのバグ自体を再現するかJavaScriptで試した上で回避操作に入る、という方が正しいでしょう。
JavaScriptなどの動作の切り替え目的ではなく「真にユーザーエージェントが情報として必要」だというのでしたら、パースするしかありませんが、miyabi-sunさんがコメントしていますようにパターンは多彩ですし、いくらでも偽装できますので、限界があります。
投稿2015/11/28 04:48
総合スコア145121
https://msdn.microsoft.com/ja-jp/library/hh869301(v=vs.85).aspx
JavaScript1ua = "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"; 2/trident 7/i.test(ua); // false
JavaScript
1ua = "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"; 2/trident 7/i.test(ua); // false
残念、通りません。
JavaScriptで定義されている正規表現はPerl5相当となります。 なので/trident 7/iの直前にあるスペースは「複数条件の部分一致検索ではなく」、 「間にスペースが挟まっている」と認識されます。
/trident 7/i
JavaScript1/trident\/7/i.test(ua); // true
1/trident\/7/i.test(ua); // true
上記サイトにあるように「Trident/4.0」も立派なIE11ですので、 バージョン7のみに制限してしまうと思わぬ動かないブラウザが出てくるかと思います。
投稿2015/11/28 03:48
総合スコア21158
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.50%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
IE11のみのユーザーエージェント判定について
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。