JavaScript in XSL - Netscape zeigt nix an?
John Barden
- xsl
Hi, ich hab ein einfaches JavaScript in einer XSL-Datei. Der Internet Explorer 6.0 zeigt alles korrekt an. Der Netscape 7.0 zeigt aber garnichts an. Nicht mal eine Fehlermeldung. So sieht die XSL aus:
--------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>test</title>
</head>
<body>
<script language="JavaScript">
<![CDATA[
document.write('This is a Test!');
]]>
</script>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Die XSL-Datei wird über diese XML-Datei aufgerufen:
--------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<empty/>
--------------------------------------------------------
Also in der Adresszeile des Browsers steht nur das:
C:\test\test.xml
Die XML und die XSL liegen im gleichen Verzeichnis.
Aber anscheinend wird das JavaScript beim Netscape ausgeführt, weil wenn ich ein alert reinmache, dann poppt schon eine Meldung hoch.
Wie kann ich dem Netscape jetzt beibringen, dass er das document.write auch anzeigen soll?
Bin für jede Hilfe dankbar,
Gruß
John
Hi, ich hab ein einfaches JavaScript in einer XSL-Datei. Der Internet Explorer 6.0 zeigt alles korrekt an. Der Netscape 7.0 zeigt aber garnichts an. Nicht mal eine Fehlermeldung. So sieht die XSL aus:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<xsl:template match="/"><html>
<head>
<title>test</title>
</head>
<body><script language="JavaScript">
<![CDATA[
document.write('This is a Test!');
]]>
</script>
</body></html>
</xsl:template>
</xsl:stylesheet>Die XSL-Datei wird über diese XML-Datei aufgerufen:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?><empty/>
Also in der Adresszeile des Browsers steht nur das:
C:\test\test.xml
Die XML und die XSL liegen im gleichen Verzeichnis.Aber anscheinend wird das JavaScript beim Netscape ausgeführt, weil wenn ich ein alert reinmache, dann poppt schon eine Meldung hoch.
Wie kann ich dem Netscape jetzt beibringen, dass er das document.write auch anzeigen soll?
Bin für jede Hilfe dankbar,
Gruß
John
Ich weiß nicht recht, ob dir das hilft, aber nur der IE unterstützt __ganz__ XML. Die anderen Browser sind da nicht soweit. Welchen Browser benutzt du denn? Probier das mal in Netscape 7.
Ich weiß nicht recht, ob dir das hilft, aber nur der IE unterstützt __ganz__ XML. Die anderen Browser sind da nicht soweit. Welchen Browser benutzt du denn? Probier das mal in Netscape 7.
Ja, ich hab es in Netscape 7 versucht. Eben da funktioniert es nicht. Nur im IE.
Naja, kann man nichts machen. Danke.
Hi!
Eine Reihe von Vermutungen, basierend auf der Tatsache, das du XML auslieferst (als text/xml oder application/xml):
NN7/ Mozilla schaltet bei diesem MIME-Typ in den Strict-Modus.
<script language="JavaScript">
Sollte <script type="text/javascript"> lauten
<![CDATA[
document.write('This is a Test!');
]]>
Aufgrund der Tatsache, das NN7 bei XML-Dokumenten kein HTML-DOM http://www.w3.org/TR/DOM-Level-2-HTML/ sondern nur DOM-Core [http://www.w3.org/TR/DOM-Level-2-Core/] anwendet, kann das nicht funktionieren, da in DOM-Core das document-Object keine Methode write() besitzt. Überprüfe, welches DOM bei dir angewendet wird mittels
alert( document );
Bei Anwedung von DOM-Core sollte object XMLDocument ausgegeben werden, sollte NN7 DOM-HTML anwenden, so wird er object HTMLDocument ausgegeben werden.
Alternativ zu write() würde ich übrigens die diversen DOM-Methoden für das kreieren und einhängen von Textknoten empfehlen.
Gruß Herbalizer
Hallo,
Hi, ich hab ein einfaches JavaScript in einer XSL-Datei. Der Internet Explorer 6.0 zeigt alles korrekt an. Der Netscape 7.0 zeigt aber garnichts an. Nicht mal eine Fehlermeldung.
Oh doch er tut es (der Ns 7), er sagt dir, dass "document.write is not a function" und zwar in der Javascript-Console.
Probiere es aus:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>test</title>
</head>
<body>
<script language="JavaScript">
<![CDATA[
alert('This is a Test!');
]]>
</script>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Du muss deine JavaScript etwas anderes gestalten.
Grüße
Thomas