본문 바로가기
연구하기/Web Development

form 하부의 노드에 대해서 innerHTML 로 새로운 노드를 생성할 때, form 을 생성할 경우 '알 수 없는 런타임 오류' 발생

by 썰렁황제 2007. 11. 12.
웹 브라우저별 버그 및 차이점

XHTML : form 하부의 노드에 대해서 innerHTML 로 새로운 노드를 생성할 때, form 을 생성할 경우 '알 수 없는 런타임 오류' 발생

- IceEmperor

1. 발생현상
  form 하부의 노드 (직접적 하부 및 2Depth 이상의 하부를 모두 포함) 에 대해서 innerHTML 로 새로운 노드를 생성할 때, innerHTML 로 대입할 문자열 안에 form 태그가 어느 Depth 에 존재하든지간에 innerHTML 에 대입하는 순간 '알 수 없는 런타임 오류' 가 발생한다.
* 예
 <form>
    <div id="xx">
    </div>
 </form>
 ...
 var node = document.getElementById("xx");
 node.innerHTML = '<div id="xx2"><form><input type="text" /></form></div>'; <- 오류 발생
 

2. 브라우저 별 특성
  o. 발생하는 브라우저
    - Microsoft Internet Explorer 7
  o. 발생하지 않는 브라우저
    - Mozilla Firefox 2.0
    - Opera 9.x

3. 해결방법
  - 근본적인 해결방법은 없음
  - 가급적 다음 사항을 지킨다.
    1) form 하부 노드에 대해서는 form 을 생성하는 것을 최대한 피한다.
    2) form 노드를 컴포넌트화 시킬 노드의 경계점으로 두지 않도록 한다.
반응형