티스토리 뷰
DWR을 사용해서(자바용 AJAX 라이브러리) 받아온 결과를 여러 개의 TR태그로 만들어서 미리 만들어져 있는 TBODY의 innerHTML에 밀어넣는 코드를 만들었었다.
작업은 주로 리눅스에서 했고 파이어폭스 1.5 / 2.0에서 잘 돌아갔다. QA팀의 테스트에 임박해서야 IE에서 처음으로 테스트 했는데.. 웬걸.. 완전 먹통인 것이다.
처음에는 DWR의 문제라고 생각했다. 일단 DWR이 만들어는 응답 메시지가 구질구질했기 때문이다. DWR을 걷어내야겠다고 맘만 먹고 일단 퇴근... 그러나... 좀 아깝긴 하다 -.-; DWR 같이 거져먹는(써본 사람들은 이 표현에 동의할 것이라고 확신한다) 라이브러리를 포기한다는 건 말처럼 쉬운 일이 아니다.
집에만 설치되어 있는 IE용 자바스크립트 디버거(MicrosoftScriptEditor)로 트레이스를 좀 해보기로 했다. DWR의 응답 메시지만 구질구질한게 아니다. 그 안쪽 로직은... 더욱 멋지다-.-;;;; 추적 불가능에 가깝다. 온 동네에 eval이라는 지뢰가 깔려있다. 대충 ?StepOver를 하다가 지뢰 밟기를 수십 번... 그렇게 범위를 좁혀 나간 다음, 마침내 ?StepInto라는 탐침봉으로 한 줄 한 줄 조심스럽게 찔러나갔다. 그리고... 범인은...
.
.
.
.
.
.
.
.
.
.
미안하다. 내가 그랬다. -.-;;;;
삽질이라는게 대개 그렇지만, 오늘의 삽질은 유난히 결론이 짧다:
IE에서... COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR 태그의 innerHTML 속성은 읽기 전용 이다.
(TABLE에만 적용되므로) 별로 쓸모는 없겠지만 임시 해결책은:
출처: http://www.ajaxian.com/archives/innerhtml-gotchas
- function tableInnerHTML(target, rowHTML) {
- /* Removed - why delete them?!
- while (target.rows.length > 0) {
- target.deleteRow(0);
- } */
- var tempDiv = document.createElement(”div”);
- document.body.appendChild(tempDiv);
- tempDiv.innerHTML = ‘’ + rowHTML + ‘’;
- var tt = document.getElementById(”tempTable”);
- /* Copy temporary table’s rows to target */
- for (var i = 0; i < tt.rows.length; i++) {
- target.appendChild(tt.rows[i].cloneNode(true));
- }
- tt.parentNode.removeChild(tt);
- }
오늘의 교훈: 남들 잘 쓰는 라이브러리를 함부로 의심하지말고... 니나 잘해라-.-;
'hacking > web' 카테고리의 다른 글
IE6? IE7? 어느 것을 우선 타겟으로 삼을 것인가? (0) | 2007.01.03 |
---|---|
CSS의 진화 - 방탄웹 맛보기 (0) | 2006.11.28 |
AJAX이전에 AJAX가 있었으니... (0) | 2006.11.07 |
slideshare.net (0) | 2006.11.07 |
Google has accquired JotSpot (0) | 2006.11.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- jQuery
- JavaScript
- Prototype
- 영화
- 독후감
- ****
- 장필순
- DeveloperWorks
- nodejs
- 자바스크립트
- HTML5
- 자전거
- docker
- 책
- webapp
- Eclipse
- web
- 해남
- Java
- **
- Ajax
- maven
- 여행
- ***
- ***1/2
- CSS
- Dojo
- 땅끝마을
- 노래
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함