사이트 내 전체검색
[javascript] obj.innerHTML 알 수 없는 런타임 오류입니다.
로빈아빠
https://cmd.kr/javascript/581 URL이 복사되었습니다.

본문

 

InnerHTML 과 TABLE 쓰기

IE의 경우 
obj.innerHTML = "<TABLE><TR><TD>테스트</TD></TR></TABLE>";
이렇게 테이블을 써 넣을 수 없다. 저렇게 사용한다면 저 부분에서 "알 수 없는 런타임 오류입니다." 라는 에러 메세지가 나온다.

innerHTML에서 테이블은 읽기 전용이라고 한다. 테스트를 해본 경과 IE에서 만 쓰기가 제한 되었다.
모질라, 크롬, 사파리에서는 테이블 쓰기가 잘 작동한다.

IE경우도 잘 작동 하는 경우가 있는대, HTML 파일을 그냥 바탕화면(로컬)에 저장해 두고 실행하면 잘 작동한다.

아무튼 IE 테이블을 쓰기를 하려면 생성된 테이블에 TR, TD를 동적으로 추가해야 한다.  매우 번거로운 작업이 된다. ㅠㅠ

그 외 테이블 구조가 항상 같고 테이블의 TD 안에 내용만 변경해야 하는 경우 간단하게 처리할 수 있다.

 <table border="1">
 <tr>
    <td>이름</td>
    <td id="name">&nbsp;</td>
 </tr>
 <tr>
    <td>연락처</td>
    <td id="tel">&nbsp;</td>
 </tr>
 </table>


이런 경우는 name, tel 부분만 변경하면 된다.


name과 tel를 변경하는 자바스크립트
<script language="javascript">
<!--
  function setHtml(item_id, item_html)
  {
      obj = document.getElementById(item_id);
      if (obj == null) {
          alert(item_id + ' 찾기 오류');
          return;
      }
      obj.innerHTML = item_html;
  }

    setHtml("name", "<b>장인수</b>");
    setHtml("tel", "<u>000-123-1234</u>");
//-->
</script>

<scRIPT language=javascript>

</scRIPT>

댓글목록

등록된 댓글이 없습니다.

831 (7/17P)

Search

Copyright © Cmd 명령어 3.128.31.227