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

