IE10 이하에서는 Map 사용시

'Map'이(가) 정의되지 않았습니다. 라는 오류가 난다.

 

해결방법

1. util.Map.js 생성

CustomMap = function(){
	 this.map = new Object();
};

CustomMap.prototype = {
	put : function(key, value){
		this.map[key] = value;
	},
	get : function(key){
		if(this.size() == 0)
		return '';
		return this.map[key];
	},
	containsKey : function(key){
		return key in this.map;
	},
	containsValue : function(value){
		for(var prop in this.map){
			if(this.map[prop] == value) return true;
		};
		return false;
	},
	isEmpty : function(){
		return (this.size() == 0);
	},
	clear : function(){
		for(var prop in this.map){
			delete this.map[prop];
		};
	},
	remove : function(key){
		delete this.map[key];
	},
	keys : function(){
		var keys = new Array();
		for(var prop in this.map){
			keys.push(prop);
		};
		return keys;
	},
	values : function(){
		var values = new Array();
		for(var prop in this.map){
			values.push(this.map[prop]);
		};
		return values;
	},
	size : function(){
		var count = 0;
		for (var prop in this.map) {
			count++;
		};
		return count;
	}
};

2. 사용법

var map;
if(typeof Map != "undefined"){
	map = new Map();
}else{
	map = new CustomMap();
}

'개발 > javascript & jquery' 카테고리의 다른 글

IE9 이하 window.btoa (base64)  (0) 2018.07.12
테이블 헤더 스크롤 고정  (0) 2018.07.11
jqplot 옵션 정리  (0) 2018.07.11