在firefox中,为什么语句document.write(xml.transformNode(xsl));会出错呢, 在IE中是可以执行的
<script language="javascript">
try
{
var xml=new ActiveXObject("microsoft.xmldom");
var xsl=new ActiveXObject("microsoft.xmldom");
}
catch(e)
{
try
{
var xml=document.implementation.createDocument("","",null);
var xsl=document.implementation.createDocument("","",null);
}
catch (e)
{
alert(e.message);
}
}
try
{
xml.async=false;
xml.load("student.xml");
xsl.async=false;
xsl.load("student.xsl");
}
catch (e)
{
alert(e.message);
}
document.write(xml.transformNode(xsl));
</script>
<script language="javascript">
try
{
var xml=new ActiveXObject("microsoft.xmldom");
var xsl=new ActiveXObject("microsoft.xmldom");
}
catch(e)
{
try
{
var xml=document.implementation.createDocument("","",null);
var xsl=document.implementation.createDocument("","",null);
}
catch (e)
{
alert(e.message);
}
}
try
{
xml.async=false;
xml.load("student.xml");
xsl.async=false;
xsl.load("student.xsl");
}
catch (e)
{
alert(e.message);
}
document.write(xml.transformNode(xsl));
</script>
Node.prototype.transformNode = function (oXslDom) {
var oProcessor = new XSLTProcessor();
oProcessor.importStylesheet(oXslDom);
var oResultDom = oProcessor.transformToDocument(this);
var sResult = oResultDom.xml;
if (sResult.indexOf("<transformiix:result") > -1) {
sResult = sResult.substring(sResult.indexOf(">") + 1, sResult.lastIndexOf("<"));
}
return sResult;
};