IE 구분하기 정보
기타 IE 구분하기첨부파일
본문
이 팁은 아주 옛날에 제가 소개했던 팁 중 일부입니다. (http://phpschool.com/link/tipntech/65788)
근데 안타깝게도 지금은 다른 브라우저에 스크립트는 잘 안먹히는데 IE는 명불허전 잘먹히기 때문에
오늘은 IE 구분하는 팁을 알리고자 올립니다.
저는 크게 IE 9 이상과 미만으로 나누고 있습니다.
왜냐? 브라우저 엔진부터 틀리기 때문입니다. IE 8 이하에서 쓰는 트라이던트와 9 이상에서 쓰는 트라이던트 엔진 차이가 엄청나기 때문이죠.
자바스크립트의 경우 8까지는 윈도우 JScript 에 있는 엔진을 사용하지만 9부터는 브라우저 엔진에 자체적으로 담아 사용하기 때문입니다. 렌더링과 속도 면에서 당연히 차이가 있죠. IE 9부터 마소가 정신 이제 슬슬 차리기 시작했지만 제가 보기엔 모질라재단이 모질라 브라우저를 파이어폭스로 바꾸기 시작한 꼴과 다를 거 없어 보입니다.
그래도 나름 뭐 정신은 차린거죠.
그럼 시작할까요?
근데 안타깝게도 지금은 다른 브라우저에 스크립트는 잘 안먹히는데 IE는 명불허전 잘먹히기 때문에
오늘은 IE 구분하는 팁을 알리고자 올립니다.
저는 크게 IE 9 이상과 미만으로 나누고 있습니다.
왜냐? 브라우저 엔진부터 틀리기 때문입니다. IE 8 이하에서 쓰는 트라이던트와 9 이상에서 쓰는 트라이던트 엔진 차이가 엄청나기 때문이죠.
자바스크립트의 경우 8까지는 윈도우 JScript 에 있는 엔진을 사용하지만 9부터는 브라우저 엔진에 자체적으로 담아 사용하기 때문입니다. 렌더링과 속도 면에서 당연히 차이가 있죠. IE 9부터 마소가 정신 이제 슬슬 차리기 시작했지만 제가 보기엔 모질라재단이 모질라 브라우저를 파이어폭스로 바꾸기 시작한 꼴과 다를 거 없어 보입니다.
그래도 나름 뭐 정신은 차린거죠.
그럼 시작할까요?
먼저 'v'=='\v' 요놈은 IE 9가 나오기 전까지는 IE를 구분하는 혁명적인(?) 구문이었습니다.
하지만 IE9가 나오면서 위 식은 먹혀들지 않게 되었죠.
하지만 지금도 IE 8 이하에서는 위 식이 유효하기 때문에, IE 8 이하인지 체크하는 방법으로 유용할 것입니다.
그러면 IE 전체를 통틀어 구분하는 스크립트가 뭐냐.
하지만 IE9가 나오면서 위 식은 먹혀들지 않게 되었죠.
하지만 지금도 IE 8 이하에서는 위 식이 유효하기 때문에, IE 8 이하인지 체크하는 방법으로 유용할 것입니다.
그러면 IE 전체를 통틀어 구분하는 스크립트가 뭐냐.
!+"\v1"
이겁니다. 이녀석은 IE 전체 버전에서 먹힙니다. \v 는 IE에서 수직 공백 문자로 먹힌다고 하는데, 수직 공백으로 된 1 문자를 숫자로 변환은 가능하다 하더군요.
그렇다면 다음의 경우를 생각할 수 있습니다.
IE 전체이면 true : !+"\v1"
IE 8 이하이면 true : 'v'=='\v'
IE 9 인데 쿼크 모드면 true : 'v'=='\v'
모든 브라우저 통틀어서 쿼크 모드면 true : document.compatMode != 'CSS1Compat'
IE 전체이면 true : !+"\v1"
IE 8 이하이면 true : 'v'=='\v'
IE 9 인데 쿼크 모드면 true : 'v'=='\v'
모든 브라우저 통틀어서 쿼크 모드면 true : document.compatMode != 'CSS1Compat'
이런 등등.
이제 언젠가 이 엿같은 브라우저 구분을 하지 않았으면 좋겠습니다만...................
제가 위지윅 에디터 스크립트 꾸미면서 깨달았습니다.
HTML5 표준 완성되도.. 브라우저 구분은 해야겠습니다..ㅋㅋ
어쩔 수가 없네ㅤㅇㅛㅋㅋ
HTML5 표준 완성되도.. 브라우저 구분은 해야겠습니다..ㅋㅋ
어쩔 수가 없네ㅤㅇㅛㅋㅋ
추천
6
6
댓글 0개