最近旧IEブラウザまで対応する案件は少なくなっていますが、稀に対応しなければいけない事があります。
モダンブラウザで開発して、IEで確認したらJSエラーが発生しているって事結構あります・・・
エラーが出えた場合、ロジックをまるっと書き抱えないといけない事がありますが、10行程度のコードをスクリプトの最初に追加するだけでエラーを回避できる場合もあります。
Array.indexOf()をIE8以下で使うとこんなエラーが
エラー内容
エラー: オブジェクトでサポートされていないプロパティまたはメソッドです。
Array.indexOf()を使うスクリプトをIE8以下で開くとエラーが起こります。
ですが、そんな下位IEのエラーも綺麗さっぱり無くす事ができます。
エラーとなるブラウザ
IE8以下
エラーが起きるスクリプト
var arr = ['a', 'b'];
document.write(arr.indexOf('b'));
追加するコード
if(!Array.prototype.indexOf){
Array.prototype.indexOf = function(obj, start){
for(var i = (start || 0), j = this.length; i < j; i++){
if(this[i] === obj){return i;}
}
return -1;
}
}
- 2017年01月28日修正しました。
この8行のコードをスクリプト上部に追加するだけで、エラーが無くなります。
サンプルページ
サンプルページをjsdo.itで公開しているので、IE8以下で確認してみてください。

