>웹 프론트엔드 >JS 튜토리얼 >IE6-IE9는 table.innerHTML 솔루션 Sharing_javascript 기술을 지원하지 않습니다.

IE6-IE9는 table.innerHTML 솔루션 Sharing_javascript 기술을 지원하지 않습니다.

WBOY
WBOY원래의
2016-05-16 17:50:041068검색

테스트 코드:

코드 복사 코드는 다음과 같습니다.


<script> <br>var oTable=document.getElementById("test"); <br>oTable.innerHTML="<tr><td> innerHTML</ td></tr>"; <br></script>


上述代码在IE6-9中无效,直接报错:
  IE9:Invalid target element for this operation.
  IE6-8:Unknown runtime error
  查找IE的文档(http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx)后发现有这么一段:

The innerHTML property is read-only on the col, colGroup, frameSet, html, head, style, table, tBody, tFoot, tHead, 제목, tr objects.

따라서 다른 솔루션만 사용할 수 있습니다. 내 솔루션:
복사 코드 코드는 다음과 같습니다.

var oTable=document.getElementById("test")
//oTable.innerHTML="< tr>< ;td>innerHTML";
setTableInnerHTML(oTable,"innerHTML");

function setTableInnerHTML(table, html) {
if(navigator && navigator.userAgent.match(/msie/i)){
var temp = table.ownerDocument.createElement('div')
temp.innerHTML = '' html '
'
if(table.tBodies.length == 0){
var tbody= document.createElement("tbody");
table.appendChild(tbody);
}
table.replaceChild(temp.firstChild.firstChild, table.tBodies[0]);
table.innerHTML=html;
}
}

여기서는 지원되지 않는 다른 요소에 대해서만 유사한 솔루션을 사용할 수 있습니다.

또한 IE10의 테이블은 이미 innerHTML을 지원합니다.

작가: Artwl
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.