자바스크립트/Ext JS2013. 3. 8. 23:13

어제 우리 파트원이 내게 하는말이 IE8에서 ExtJS가 미쳐간다고 한다. 다 괜찮은데 IE8을 대부분 사용하는 고객사에서

컴플레인이 계속 들어오고 있다고 한다. 

문제는 TextArea에 계속 문자열을 입력하다 보면 IE8에서만 아래 동영상처럼 혼자 미친듯이 제어를 못하는

모습이 연출되는 것이다.


원인파악에 들어가서 2시간 만에 찾아낸 원인은 바로 <!DOCTYPE html> 이것이였다. app.js를 호출하는 html에

<!DOCTYPE html> 이것이 들어가 있어서 였다. 설마 했지만 이 코드를 제거하자 언제 그랬냐는 듯 정상 작동을 하였다.


DOCTYPE 즉 DTD (Document Type Definition)을 정확히 명시하지 않아서 이다. DTD가 명확하지 않을 경우

브라우저는 임의로 DTD를 해석하게 되고 의도치 않은 동작을 하게 되는 것 같다.

이런 경우에는 DTD를 정확히 명시하거나 그러기 힘들 경우 아예 삭제하는 것이 좋겠다.

브라우저는 html의 DOCTYPE으로 이 문서가 어떤 형식의 문서인지 구별하게 된다. IE에 경우 유난히 심하다고 할 수 있다.

동일한 소스도 DOCTYPE을 어떻게 명시하느냐에 따라 보여지는 모습이 전혀 다를 수 있다는 것을 인지해야한다.


뭐든 정확히 알고 쓰는게 좋다며 살짝 혼을 내긴 했지만 나 또한 이부분이 문제를 일으키리라고는 

생각지 못했으니 좋은 경험 했다고 생각해야 겠다.



Posted by 1 베니94

댓글을 달아 주세요

  1. extJS 질문입니다.

    안녕하세요 올려주신 내용과 강좌 소스등 잘 보고 있습니다. 저도 따라서 이것저것 만들다 보니 궁금한 점 있어서 질문드립니다.
    extJS3를 이용해 만들어보고 있는데 textarea가 제대로 작동하지 않는것이 많아서요. 데이터를 디비에서 불러와 txtarea에 뿌리게 되면
    줄바꿈이 안되고 종결되지 않는 문자상수열 에러가 나오는데혹시 시간되시거나 이러한 문제를 겪어보셨다면 간단한 답변이라도 부탁드리겠습니다. 서버프로그램단에서 개행할 수 있도록 변환을 꼭 해줘야하는건지...;

    2013.04.05 08:36 [ ADDR : EDIT/ DEL : REPLY ]