XSLT出力を反映したものではありませんFirefox
-
18-09-2019 - |
質問
を生み出しています。xslファイル変換をソースPractice.xml ドキュメントを編集するには、javascriptから、追加生成されたhtml n空のDIV要素は、細かい作業と家 が同じhtmlではないが正しく描画される。
こちらはPractice.xml
<feed>
<feedback>
<user>Naresh</user>
<date>12 Oct, 2009</date>
<comments>This blog has no stuff to rate it</comments>
</feedback>
<feedback>
<user>Pokuri</user>
<date>21 Dec, 2009</date>
<comments>Naresh is right</comments>
</feedback>
<feedback>
<user>Subbu</user>
<date>30 Dec, 2009</date>
<comments>I don't agree with both Naresh n Pokuri</comments>
</feedback>
</feed>
ここではその実践である。xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="html" indent="yes"/>
<xsl:template match="feed/feedback">
<html>
<head>
<title>Feedback Forum</title>
</head>
<body>
<span style="display:block; padding: 5px 10px; background-color: #C9F0F9; width: 100%; margin-top:10px; border-left:10px solid #F9EBC9; border-bottom: 1px solid #000000;"><xsl:apply-templates select="user"/> on <xsl:apply-templates select="date"/></span>
<span style="display:block; padding: 5px 10px; background-color: #CDF5CD; width: 100%; border-left:10px solid #F9EBC9;"><xsl:apply-templates select="comments"/></span>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
こちらはjavascriptで働くためのXSLT処理Firefox
function listOrders(){
var XSLT = loadXSLT("Practice.xsl");
var trasformedText;
if(window.ActiveXObject){
trasformedText = XMLDOM.transformNode(XSLT);
document.getElementById("rightDIV").innerHTML=trasformedText;
} else if(document.implementation && document.implementation.createDocument){
**xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(XSLT);
trasformedText = xsltProcessor.transformToFragment(XMLDOM, document);
document.getElementById("rightDIV").appendChild(trasformedText);**
} else {
alert("Sorry your browser may not support xsl transformation.\n+Please check your browser documentation for further help");
}
}
相対的な画像のための専門家に問題があるのかを確認簡単に
解決 3
ロードXSLファイル内のFirefoxの遅ことかもしれません。だから私は、ファイルが小さいと私は無視している、それに対処するために、次のコードの変更を行っています。
文を書きました XMLDOM.async = falseは、 XSLT.async =偽;
function loadXML(){
var XMLDOM;
// if it is IE
if(window.ActiveXObject){
XMLDOM = new ActiveXObject("Microsoft.XMLDOM");
// following staement added
XMLDOM.async=false;
XMLDOM.load("Practice.xml");
} else if(document.implementation && document.implementation.createDocument){
XMLDOM = document.implementation.createDocument("", "", null);
// following staement added
XMLDOM.async=false;
XMLDOM.load("Practice.xml");
} else {
alert("Sorry your browser may not support loading an external file.\n+Please check your browser documentation for further help");
}
return XMLDOM;
}
function loadXSLT(xsltFile){
var XSLT;
// if it is IE
if(window.ActiveXObject){
XSLT = new ActiveXObject("Microsoft.XMLDOM");
// following staement added
XSLT.async=false;
XSLT.load(xsltFile);
} else if(document.implementation && document.implementation.createDocument){
XSLT = document.implementation.createDocument("", "", null);
// following staement added
XSLT.async=false;
XSLT.load(xsltFile);
} else {
alert("Sorry your browser may not support loading an external file.\n+Please check your browser documentation for further help");
}
return XSLT;
}
他のヒント
ビューに生成されたHTMLソースです。です。だ完全に表示する <html>
ページ 各 feedback
の代わりにだけ表示するには <span>
s各 feedback
.
おXSLニーズを行うことができますが、改変、 <xsl:for-each>
各ディクテーション
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="html" indent="yes"/>
<xsl:template match="feed">
<html>
<head>
<title>Feedback Forum</title>
</head>
<body>
<xsl:for-each select="feedback">
<span style="display:block; padding: 5px 10px; background-color: #C9F0F9; width: 100%; margin-top:10px; border-left:10px solid #F9EBC9; border-bottom: 1px solid #000000;"><xsl:apply-templates select="user"/> on <xsl:apply-templates select="date"/></span>
<span style="display:block; padding: 5px 10px; background-color: #CDF5CD; width: 100%; border-left:10px solid #F9EBC9;"><xsl:apply-templates select="comments"/></span>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
IEもに寛容で表示する複数の <html>
s"一つの対応、そのために働いてこのブラウザです。Firefox以上に厳しい管理を実施の基準である 一つ <html>
要素のDOM.
私はかなりdiceyであり、あなたは、多くの一貫性を保証していない、これは本当に質問に答えていませんが、クライアント側のXSLT変換を知っています。私があなただったら、私は、サーバー側のXSLT変換を使用して検討する。
所属していません StackOverflow