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