IE6の制限と判定
IE6では何故か下記のようなDOM要素にイベントハンドラを追加する処理でエラーになってしまう。
タッチイベントハンドラなのでとりあえず IEの時は下記を実行しないように判定文を入れてみる。
var label_elemens = document.getElementsByClassName("taskLabel"); var i = 0; for(i=0;i < label_elemens.length;i++){ label_elemens[i].addEventListener("touchstart", touchHandler, true); label_elemens[i].addEventListener("touchmove", touchHandler, true); label_elemens[i].addEventListener("touchend", touchHandler, true); label_elemens[i].addEventListener("touchcancel", touchHandler, true); }
userAgent を取得して msie で判定すれば良いようだ。他のブラウザも同様。
var userAgent = window.navigator.userAgent.toLowerCase(); if (userAgent.indexOf("msie") > -1) { return; } var label_elemens = document.getElementsByClassName("taskLabel"); var i = 0; for(i=0;i < label_elemens.length;i++){ label_elemens[i].addEventListener("touchstart", touchHandler, true); label_elemens[i].addEventListener("touchmove", touchHandler, true); label_elemens[i].addEventListener("touchend", touchHandler, true); label_elemens[i].addEventListener("touchcancel", touchHandler, true); }
IE6は本当にやっかいだ.....
でもこれでIE6からでも使えるぞ!(使わないけど)