Преобразование XML/XSLT в ИЕ
В ИЕ почему-то не хочется добавляться параметр в XML/XSLT преобразование
domDocument = { load_file : function(xmlfile) { if (window.XMLHttpRequest) { xhttp=new XMLHttpRequest(); } else { alert("Hello!"); xhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",xmlfile,false); xhttp.send(""); return xhttp.responseXML; }, load_string : function(xmlstr) { if(document.implementation && document.implementation.createDocument) { var parser = new DOMParser(); var doc = parser.parseFromString(xmlstr,"text/xml"); } else if(window.ActiveXObject) { var doc = Try.these( function() { new ActiveXObject('Microsoft.XMLDOM') }, function() { return new ActiveXObject('Microsoft.DomDocument')}, function() { return new ActiveXObject('MSXML.DomDocument') }, function() { return new ActiveXObject('MSXML2.DomDocument') }, function() { return new ActiveXObject('MSXML3.DomDocument') } ) || false; doc.async = false; doc.load(xmlstr); } return doc || null; }, xslt : function(xmldoc,xsldoc,param) { try { if(document.implementation && document.implementation.createDocument) { var proc = new XSLTProcessor(); proc.importStylesheet(xsldoc); if (param){ params = explode(", ", param); for (i = 0; i<params.length; i = i+2){ if (!params[i] || !params[i+1]) continue; name = params[i]; value = params[i+1]; proc.setParameter(null, name, value); } } var xhtmldoc = proc.transformToDocument(xmldoc); var ser = new XMLSerializer(); return ser.serializeToString(xhtmldoc); } else if(window.ActiveXObject) { if (param){ params = explode(", ", param); for (i = 0; i<params.length; i = i+2){ if (!params[i] || !params[i+1]) continue; name = params[i]; value = params[i+1]; alert(name+value); xmldoc.setParameter(null, name, value); } } return xmldoc.transformNode(xsldoc); } } catch (e) {} }, asXML : function(xmldoc) { if(document.implementation && document.implementation.createDocument) { var ser = new XMLSerializer(); return ser.serializeToString(xmldoc); } else if(window.ActiveXObject) { return xmldoc.xml; } } } Собственно сама проблема лежит тут: else if(window.ActiveXObject) { if (param){ params = explode(", ", param); for (i = 0; i<params.length; i = i+2){ if (!params[i] || !params[i+1]) continue; name = params[i]; value = params[i+1]; alert(name+value); xmldoc.setParameter(null, name, value); } } return xmldoc.transformNode(xsldoc); } Без xmldoc.setParameter(null, name, value); все работает, с xmldoc.setParameter(null, name, value); xshtml получаю undefuned. В чем дело, объясните? |
Часовой пояс GMT +3, время: 13:20. |