我需要帮助让文件在Firefox中运行:我尝试过修改脚本,以便我的文件可以在IE和Firefox中运行,但到目前为止它仍然只能在IE中运行。 (该文件可以在http://www.eyle.org/crosstest.html测试 - 只需在使用IE的文本框中字迈克(不工作在Firefox)。该HTML文档是:XML跨浏览器支持
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var xmlDoc;
//loads xml using either IE or firefox
function loadXmlDoc()
{
//test for IE
if(window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load("books2.xml");
}
//test for Firefox
else if(document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument("","",null);
xmlDoc.load("books2.xml");
}
//if neither
else
{
document.write("xml file did not load");
}
}
//window.onload = loadXmlDoc();
var subject;
//getDetails adds value of txtField to var subject in outputgroup(subject)
function getDetails()
{
//either this or window.onload = loadXmlDoc is needed
loadXmlDoc();
var subject = document.getElementById("txtField1").value;
function outputgroup(subject)
{
var xslt = new ActiveXObject("Msxml2.XSLTemplate");
var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
var xslProc;
xslDoc.async = false;
xslDoc.resolveExternals = false;
xslDoc.load("contains3books.xsl");
xslt.stylesheet = xslDoc;
xslProc = xslt.createProcessor();
xslProc.input = xmlDoc;
xslProc.addParameter("subj", subject);
xslProc.transform();
document.write(xslProc.output);
}
outputgroup(subject);
}
</script>
</head>
<body>
<input type="text" id="txtField1">
<input type="submit" onClick="getDetails(); return false">
</body>
</html>
该文件包括了Books2.xml和contains3books。 xsl(我已将这些文件的代码放在... ww.eyle.org/books2.xml ... ww.eyle.org/contains3books.xsl)(注意:用...替换... ww。 WWW)
检查FF JavaScript错误控制台,你总是与MS的工作具体'ActiveXObject'在outputgroup()。 – 2009-12-27 08:10:24
您可以考虑使用处理所有跨浏览器检查/差异的Sarissa http://dev.abiss.gr/sarissa/(或其他JavaScript库),并为您提供一个抽象API。 Sarissa专门用来处理XML/XSLT/XPATH的东西。 – 2009-12-27 17:15:53