2009-06-21 4 views
0

각각 고유 한 ID와 4 개의 셀이있는 자바 스크립트 생성 테이블 세트가있는 창이 있으며 다음 자바 코드를 사용하여이 테이블 중 하나의 배경색을 설정합니다. 파이어 폭스에서는 잘 작동하지만 처음으로 배경색을 설정하려고하면 Safari가 중단됩니다 (if 문에서). 어떤 아이디어?왜 자바 스크립트 충돌 사파리가 있지만 파이어 폭스가 아닌가요?

<script language='Javascript'> 
    function colortree(source) { 
    var el=parent.frames['tree-pane'].document.getElementsByTagName('table'); 
    for (var i=0;i<el.length;i++) { 
     var id = el[i].id; 
     if (id) { 
      var cell = el[i].getElementsByTagName('td')[3]; 
      if (id == source) { cell.style.backgroundColor = 'yellow' } 
      else { cell.style.backgroundColor = 'white' }; 
     } 
    } 
    return false; 
    } 
</script> 
+1

테이블에 최소 4 개의 셀이 있습니까? 그렇지 않은 경우 하드 코딩 된 [3] 참조가 유효하지 않습니다. –

답변

3

어떤 기회가 있다면 당신은 항상 그들이 존재하지 않는 배열 인덱스의 존재를 테스트해야합니다

예를 들어,

<script language='Javascript'> 
    function colortree(source) { 
    var cells, cell, id; 
    var el=parent.frames['tree-pane'].document.getElementsByTagName('table'); 
    for (var i=0;i<el.length;i++) { 
     id = el[i].id; 
     if (id) { 
      cells = el[i].getElementsByTagName('td'); 
      if (cells[3]) { 
       cell = cells[3]; 
       if (id == source) { cell.style.backgroundColor = 'yellow' } 
       else { cell.style.backgroundColor = 'white' }; 
      } 
     } 
    } 
    return false; 
    } 
</script> 
관련 문제