0

Internet Explorer 9 と Firefox 13 でいくつか問題があります。HTML、XSL、および XML を使用して Web インターフェイスを構築しています。Chrome、Opera、および Safari では何も変更せずに正常に動作しますが、Firefox 13 では動作しません。 Internet Explorer 9. Firefox では、XML 値をロードできないページ (すべてではない) があります。Internet Explorer では、XSLT を使用する html ページの css をロードできませんが、すべてのパラメータを正しくロードできます。

上記は、動作しないページの例です (HTML、XML、XSL)。

HTML

<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname+"?id="+Math.random(),false);
xhttp.send("");
return xhttp.responseXML;
}

function displayResult()
{
xml=loadXMLDoc("sensorParameters.xml");
xsl=loadXMLDoc("sensorParameters.xsl");
// code for IE
if (window.ActiveXObject)
  {
  ex=xml.transformNode(xsl);
  document.getElementById("example").innerHTML=ex;
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xsltProcessor=new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  resultDocument = xsltProcessor.transformToFragment(xml,document);
  document.getElementById("example").appendChild(resultDocument);
  }
}
</script>
</head>
<body onload="displayResult()">
<div id="example" />
</body>
<head>
<meta http-equiv="cache-control" content="no-cache">
</head>
</html>

XSL

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
    <head>
          <title>Interface</title>
          <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
    ...
    (It continues, but it is not important...)
    </body>
</html>
</xsl:template>
</xsl:stylesheet>

XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="sensorParameters.xsl"?>
<section1>
<section2>
          ......... some data
</section2>
<section3>
          ......... some data
</section3>
          .........
</section1>

どんな助けでも大歓迎です。

マルコ

4

1 に答える 1

0

IE の問題に関しては、問題の考えられる原因の 1 つは、XSLT を使用してhtmlルート要素を含む完全な HTML ドキュメントを作成し、スタイルシートのheadセクションを作成linkし、XSLT の結果をdiv要素に含めようとするアプローチだと思います (ここでIE はおそらく ) を無視しlinkます。これを修正するには、アプローチを変更し、XSLT 変換結果を挿入する HTML ドキュメントにlinkXSLT によって作成された要素を追加する必要があります。head

于 2012-06-22T11:49:29.480 に答える