XML 파일의 일부를 HTML 테이블의 단일 행으로 변환하는 데 Javascript를 사용하려고합니다. 생각은 여러 XML 파일에서 테이블에 여러 행을 만들 것입니다. 파이어 폭스와 오페라의 경우이 멋진 코드 조각이 아름답게 작동합니다.IE에서 조각을 처리하는 XSL
var resTable = document.createElement('table');
for (i = 0; i < xmlNames.length; i++)
{
// code for IE
if (window.ActiveXObject)
{
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xml=loadXMLDoc(xmlNames[i]);
xsl=loadXMLDoc(xslName);
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
resTable.appendChild(resultDocument);
}
}
document.getElementById("theDoc").appendChild(resTable);
문제는 "if IE"부분에서 수천 가지를 시도했지만 아무 것도 작동하지 않는다는 것입니다. 나는 많은 인터넷 검색을했고, 내가 물기 전에 여기에서 브라우징했다. 그러나 아무 소용이 없다. 실제로, 매우 유사하게 들릴지도 모르는, 의문스러운 질문이 있습니다. 그러나 응답이없고 해결이 없었기 때문에 누군가가 나를 도울 수 있기를 바랬습니다 ..
나는 전체 문서를 IE에서 변환 할 수 있지만, 내가 조각으로 이것을하고 싶어한다는 사실은 내 문제를 일으키는 것입니다 .. 어떤 도움을 많이 주시면 감사하겠습니다! 감사!
편집 : 죄송합니다. 중요한 경우에 대비해 loadXMLDoc 함수를 제공하는 것을 잊어 버렸습니다. 여기에 있습니다 :
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
ActiveX 필터가 활성화되어 있어도 'true'로 평가되는 'window.ActiveXObject'로 IE를 탐지하면 안된다. 나중에 ActiveX 객체를 만들려고하면 실패합니다. – Joey
좋습니다. 그러면 다른 방법으로 권장 사항이 있습니까? – daroo
http://blogs.msdn.com/b/ie/archive/2011/05/02/activex-filtering-for-developers.aspx - XHR에 대한 올바른 작업을 이미 수행했습니다. – Joey