테스트 사이트 - 개발 중인 베타 버전입니다

IE 구분하기

· 11년 전 · 1897
이 팁은 아주 옛날에 제가 소개했던 팁 중 일부입니다. (http://phpschool.com/link/tipntech/65788)
근데 안타깝게도 지금은 다른 브라우저에 스크립트는 잘 안먹히는데 IE는 명불허전 잘먹히기 때문에
오늘은 IE 구분하는 팁을 알리고자 올립니다.
저는 크게 IE 9 이상과 미만으로 나누고 있습니다.
왜냐? 브라우저 엔진부터 틀리기 때문입니다. IE 8 이하에서 쓰는 트라이던트와 9 이상에서 쓰는 트라이던트 엔진 차이가 엄청나기 때문이죠.
자바스크립트의 경우 8까지는 윈도우 JScript 에 있는 엔진을 사용하지만 9부터는 브라우저 엔진에 자체적으로 담아 사용하기 때문입니다. 렌더링과 속도 면에서 당연히 차이가 있죠. IE 9부터 마소가 정신 이제 슬슬 차리기 시작했지만 제가 보기엔 모질라재단이 모질라 브라우저를 파이어폭스로 바꾸기 시작한 꼴과 다를 거 없어 보입니다.
그래도 나름 뭐 정신은 차린거죠.
그럼 시작할까요?
먼저 'v'=='\v' 요놈은 IE 9가 나오기 전까지는 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'
이런 등등.
이제 언젠가 이 엿같은 브라우저 구분을 하지 않았으면 좋겠습니다만...................
제가 위지윅 에디터 스크립트 꾸미면서 깨달았습니다.
HTML5 표준 완성되도.. 브라우저 구분은 해야겠습니다..ㅋㅋ
어쩔 수가 없네ㅤㅇㅛㅋㅋ

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
19384
27584
6013
6004
27572
5997
5992
5981
5964
5952
5948
5941
5937
5934
5931
19383
5926
5923
5913
24558
5912
30895
27563
5907
5903
5900
27556
5898
24555
5894
5893
5890
5884
27537
5881
5878
30888
30884
5876
5874
27524
27514
19379
19377
27509
5869
5866
27505
5865
5860
5857
27503
27481
27462
5856
19511
27458
24547
19374
19373
19371
27453
19370
27449
27441
19366
24544
19365
19361
19360
19358
19356
19354
19351
19348
19346
19339
19334
5849
27439
5846
27434
27429
19331
19329
19328
5841
5840
19326
5834
5831
5826
19324
5821
32040
27426
19320
5816
32030
5815