LoginSignup
1
1

More than 5 years have passed since last update.

IE11(互換モード)UAにはMSIEがある

Posted at

現象

(おおまかに言うと)こういう感じの分岐をやってるところで、

var ua = navigator.userAgent.toLowerCase();
var hogeElement = document.getElementById('hoge');

if (/msie/.test(ua)) {
    hogeElement.attachEvent('click', iehoge);
} else {
    hogeElement.addEventListener('click', hoge, false);
}

通常、IE11は、「MSIE」が含まれないのでセーフだが、
互換モードの IE11は、UAが以下の様になるのでアウト。
という事象を見た。

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)

改善

自力で判定するにしても、addEventListener用の判定なので、addEventListener で判定すべき。

if (el.addEventListener){
  el.addEventListener('click', modifyText, false);
} else if (el.attachEvent){
  el.attachEvent('onclick', modifyText);
}

https://developer.mozilla.org/ja/docs/Web/API/EventTarget.addEventListener

(念のため)両方ある IE9 には少し注意しましょう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1