본문 바로가기
경력

[Javascript]인터넷 익스플로러에서는 지원하지 않는 자바스크립트 함수가 있었다.

by devebucks 2020. 4. 23.
728x90

어느날. 말단사원답게 한가로이 프로젝트 테스트 시나리오를 열심히 작성하고 있을 때였습니다. 크롬에서는 오류없이 잘 되던 앱이 인터넷 익스플로러에서는 데이터가 불러와지지 않는 아주 심각한 현상을 발견했습니다.(익스플로러는 정말이지..)

알아보니, Internet Expolore에서 지원되지 않는 자바스크립트 내장 객체 기능(함수)가 있었습니다. 

 

 
문자열_객체.includes('포함되어 있는지 확인할 문자');
 

 

그건 바로 includes()함수였습니다. includes()함수는 문자를 파라미터로 입력받아, 파라미터의 문자열이 '문자열_객체'에 포함되어 있는지 확인하는 함수입니다.

 

 

저의 프로젝트의 웹 개발에서 화면단 소스(jsp)에 자바스크립트 includes()를 사용하면 크롬에서는 정상적으로 동작하지만, 인터넷 익스플로러는 오류가 나고 있는 것이었습니다.

 

그래서 includes() 말고 다른 내장 객체 함수를 사용해야 했고, 다른 방법을 찾기 위해서 구글검색을 시작했습니다.

결과적으로 저와 같은 상황에 처하신 분들이 많이 계셨고, 해법은 indexOf()를 사용하는 것이었습니다.

 

다음은 indexOf()를 대신 사용하는 방법입니다.

1
2
3
4
5
var munja = '가나다, 구';
if(munja.indexOf(',')>=0){
    //만약 문자열에 ','가 포함되어 있지 않으면, -1을 반환한다.
    alert("문자열에 ','가 포함되어 있어요!");
}
 

 

 

모든 브라우저에서 정상적으로 동작하는 애플리케이션을 개발한다는게 정말 어려운 일인 것 같습니다.

 

do it 자바스크립트 책에 보면 이런 말이 나옵니다

.

 

 

자바스크립트의 문서 객체 모델은 IE8 이하 버전부터는 호환성이 떨어진다. 그래서 jQuery의 문서 객체 모델(DOM)을 사용한다.

 

 

 

응? jQuery는 그럼 IE8이하에서는 다 호환이 되는건가?

728x90

댓글