Hi,
ich möchte mit XSLT HTML Seiten mit IFrames erstellen.
Dazu schreibe ich mit document.write() den Inhalt in den Iframe.
Der Inhalt generiere ich mit call-templates und apply-templates und speichere ihn in einer Variablen, weil ich noch die Leerräume entfernen und doppelte Anführungszeichen mit Einfachen ersetzen muss.
<pre><xsl:template match="APPLICATION">
<IFRAME name="application">
</IFRAME>
<SCRIPT type="text/javascript">
<xsl:variable name="frame_inhalt">
<xsl:call-template name="application_html"/>
</xsl:variable>
<![CDATA[
top.frames["application"].document.close(); top.frames["application"].document.open("text/html","replace");
var str_frame='
]]>
<xsl:value-of select="normalize-space($frame_inhalt)"/>
<![CDATA['; top.frames["application"].document.write(str_frame);
top.frames["application"].document.close();
]]>
</SCRIPT>
</xsl:template>
<xsl:template name="application_html">
<![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">]]>
<HTML>
<xsl:call-template name="application_head"/>
<xsl:call-template name="application_body"/>
</HTML>
</xsl:template></pre>
In der Variablen stehen dann aber nur CDATA abschnitte und textknoten.
Wieso ?
Wenn ich das Template innerhalb von write aufrufe:
<pre><![CDATA[top.frames["application"].document.write(]]><xsl:call-template name="application_html"/><![CDATA[);]]></pre>
dann steht zwar alles drin, aber ich habe keine Möglichkeit mehr den String zu verändern.
Hat hier jemand ein Lösung?
Danke im Voraus
Silvija
ich möchte mit XSLT HTML Seiten mit IFrames erstellen.
Dazu schreibe ich mit document.write() den Inhalt in den Iframe.
Der Inhalt generiere ich mit call-templates und apply-templates und speichere ihn in einer Variablen, weil ich noch die Leerräume entfernen und doppelte Anführungszeichen mit Einfachen ersetzen muss.
<pre><xsl:template match="APPLICATION">
<IFRAME name="application">
</IFRAME>
<SCRIPT type="text/javascript">
<xsl:variable name="frame_inhalt">
<xsl:call-template name="application_html"/>
</xsl:variable>
<![CDATA[
top.frames["application"].document.close(); top.frames["application"].document.open("text/html","replace");
var str_frame='
]]>
<xsl:value-of select="normalize-space($frame_inhalt)"/>
<![CDATA['; top.frames["application"].document.write(str_frame);
top.frames["application"].document.close();
]]>
</SCRIPT>
</xsl:template>
<xsl:template name="application_html">
<![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">]]>
<HTML>
<xsl:call-template name="application_head"/>
<xsl:call-template name="application_body"/>
</HTML>
</xsl:template></pre>
In der Variablen stehen dann aber nur CDATA abschnitte und textknoten.
Wieso ?
Wenn ich das Template innerhalb von write aufrufe:
<pre><![CDATA[top.frames["application"].document.write(]]><xsl:call-template name="application_html"/><![CDATA[);]]></pre>
dann steht zwar alles drin, aber ich habe keine Möglichkeit mehr den String zu verändern.
Hat hier jemand ein Lösung?
Danke im Voraus
Silvija