이미 아시는 분들도 있겠지만 Internet Explorer 의 경우는 <TABLE>, <THEAD>, <TBODY>, <TR> 엘리먼트의 innerHTML 이 읽기전용이라서 innerHTML 을 셋팅 할 수 없는 문제가 있습니다.
그리고 <SELECT> 도 innerHTML 가 읽기전용은 아니지만 막상 사용하면 동작이 이상해지는 문제가 있죠.
IE 에서 이런 문제가 있다는 건 많이 알려진 내용인데요, 오늘 팀원 한 분이 제가 짠 코드가 이상하게 동작한다는 제보를 해주셔서 발견한 문제를 공유드립니다.
이 문제는 IE 가 아닌 FireFox 에서만 발생하는 문제인데요, parentNode 가 존재하지 않는 엘리먼트에다가 innerHTML 로 셋팅하려고 할 때 문제가 발생합니다
이를 테면
위와 같은 코드에서는 hello 의 parentNode 가 존재하기 때문에 문제가 안 생기지만
위의 코드에서는 hello 의 parentNode 가 존재하지 않기 때문에 문제가 생기는 데요,
innerHTML 에서 텍스트 부분만 쏙 빠져서 적용되네요;
모든 종류의 엘리먼트에 대해서 이런 문제가 생기는 건 아닌 것 같고,
조금 테스트 해본 바로는 THEAD, TBODY, TR 엘리먼트의 innerHTML 을 다룰 때 이런 문제가 발생하는 것 같습니다.
내용이 긴데, 3줄 요약하면,
- 파이어 폭스에서
- parentNode 노드가 존재하지 않는
- THEAD, TBODY, TR 엘리먼트의 innerHTML 을 셋팅하면 이상하게 동작한다
DOM 다루실 때 참고해주세요~
- 영양가 있는 포스팅인가요
- (총 2분이 투표해서 2.5점) 2.5점






