最近旧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以下で確認してみてください。