JS:旧IEでJSエラー時の対処方 Object.keys()編

JS:旧IEでJSエラー時の対処方 Object.keys()編

author : koki

publish date :

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