Probleme GoogleAnalytics-JavaScript in XSLT Stylesheet
ManfredJ.
- xsl
Hallo,
Nach längerem Googlen und Herumprobieren versuche ich es nocheinmal hier:
Ich möchte XML-Dokumente via XSL in HTML transformieren und im Web veröffentlichen. Zur Webanalyse enthält das Stylesheet ein JavaScript für GoogleAnalytics (bzw PIWIK), das von allen Browsern korrekt verarbeitet wird, ausser von Firefox. Der Browser hängt sich irgendwo auf, die Seite bleibt weiß
Hat jemand eine Idee?
Herzl Dank
ManfredJ.
Hi,
Ich möchte XML-Dokumente via XSL in HTML transformieren und im Web veröffentlichen.
Zur Webanalyse
... wäre die Adresse, unter der man das betrachten kann, sicher hilfreich.
MfG ChrisB
Hi,
das hätte ich doch fast vergessen :-)
Bitte bleibe mit deinem Problem in deinem bestehenden Thread, und unterlasse künftig hier unterwünschte Doppelpostings.
MfG ChrisB
Vielen Dank für den Hinweis. Ich dachte, wenn das Thema wechselt, ist auch ein neuer Thread angemessen ....
Ein einfaches Beispiel ist erreichbar unter
http://www.wissensnetze.selfhost.de:8080/test/mitJavascript.xml (mit Script)
http://www.wissensnetze.selfhost.de:8080/test/ohneJavascript.xml (ohne)
Das (ebenfalls vereinfachte) XSL Stylesheet (mit Script):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Test</title>
<link rel="stylesheet" href="styles.css"/>
</head>
<body>
<div id="contentMiddle">
<div id="navigationRubriken"><xsl:apply-templates select="document('../../system/navigationRubriken_20090710.xml')/menue/rubrik"/></div>
<div id="grafikLogoHintergrund"/>
<div id="titel"><xsl:copy-of select="/*[1][name()='daten']/h2"/></div>
<div id="text"><xsl:copy-of select="/*[1][name()='daten']/p"/></div>
</div>
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://www.minimamedia.net/piwik/" : "http://www.minimamedia.net/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://www.minimamedia.net/piwik/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript>
<!-- End Piwik Tag -->
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Ich habe im XSL Stylesheet nur das wichtigste stehen lassen, und hoffe, dass man so den Fehler schneller sieht
Vielen Dank für Ideen
M.
Hi,
das hätte ich doch fast vergessen :-)
Bitte bleibe mit deinem Problem in deinem bestehenden Thread, und unterlasse künftig hier unterwünschte Doppelpostings.
MfG ChrisB
``
Hallo Manfred,
Das (ebenfalls vereinfachte) XSL Stylesheet (mit Script):
...
<xsl:apply-templates select="document('../../system/navigationRubriken_20090710.xml')/menue/rubrik"/>
...
Das Problem liegt offenbar in diesem XML-Dokument, konkret ist in http://www.wissensnetze.selfhost.de:8080/system/navigationRubriken\_20090710.xml ein META-Element nicht abgeschlossen und somit fehlt dem Dokument die Wohlgeformtheit. Im IE funktioniert die JS-Variante auch nicht: "Das angegebene Objekt konnte nicht gefunden werden.".
Grüße,
Thomas
Hallo Thomas,
vielen Dank für die Rückmeldung.
Selbst wenn im XML Dokument nur noch das PIWIK Script stehen bleibt (also ohne das von dir angespochene externe Dokument) funktioniert es nicht.
Streng genommen geht es um das erste der beiden PIWIK JavaScripts. Wenn ich es rausnehme, läuft es auch auf Firefox
:-(
Das Problem liegt offenbar in diesem XML-Dokument, konkret ist in http://www.wissensnetze.selfhost.de:8080/system/navigationRubriken_20090710.xml ein META-Element nicht abgeschlossen und somit fehlt dem Dokument die Wohlgeformtheit.
Grüße,
Thomas
Hallo Manfred,
Selbst wenn im XML Dokument nur noch das PIWIK Script stehen bleibt (also ohne das von dir angespochene externe Dokument) funktioniert es nicht.
Streng genommen geht es um das erste der beiden PIWIK JavaScripts. Wenn ich es rausnehme, läuft es auch auf Firefox
Vielleicht mal das XSLT-Stylesheet als XML ausliefern und nicht als application/octet-stream.
Grüße,
Thomas
Vielleicht mal das XSLT-Stylesheet als XML ausliefern und nicht als application/octet-stream.
Grüße,
Thomas
Vielen Dank für die Rückmeldung
Ich möchte das Dokument ja als HTML bzw XHTML ausliefern. Wenn ich den xsl-output auf method=xml setze, tut sich in allen Browsern nichts mehr. Das Script läuft nur bei method=html.
Bei Firefox tut sich aber in allen Fällen nichts. Bei method=xhtml wird gemeldet, dass das Parsen des Stylesheets fehlgeschlagen ist. Bei method=xml läuft die Seite, aber ohne dass das Script aufgerufen wird. Bei method=html hängt sich FireFox auf ...
????
M.
Hallo Manfred,
Ich möchte das Dokument ja als HTML bzw XHTML ausliefern. Wenn ich den xsl-output auf method=xml setze, tut sich in allen Browsern nichts mehr. Das Script läuft nur bei method=html.
Ich bezog mich auf die Serverkonfiguration für .xsl und dort steht offenbar application/octet-stream.
Bei Firefox tut sich aber in allen Fällen nichts. Bei method=xhtml wird gemeldet, dass das Parsen des Stylesheets fehlgeschlagen ist. Bei method=xml läuft die Seite, aber ohne dass das Script aufgerufen wird. Bei method=html hängt sich FireFox auf ...
method="xhtml" ist eine neue Option aus XSLT 2.0, welche Browser noch nicht unterstützen. Ansonsten fällt mir nur noch ein, die script-Inhalte in CDATA-Abschnitte zu legen.
Grüße,
Thomas
Hallo Thomas
vielen Dank, aber ich bin leider nicht weitergekommen. Ich habe das Problem mit verschiedenen Servern/Servereinstellungen , auch das Einpacken hat nicht geholfen.
Da ich nicht der geübteste Bastler bin, gebe ich vorerst auf, zumindest mit dem Einbau des Statisiktools ..... um noch weitere Erfahrungen zu sammeln mit der browserseitigen Umwandlung von XML Daten in HTML . Vielleicht bin ich da eh auf dem Holzweg. Die Browser können doch alle vollständig XSLT 1.0 transformieren. Spricht denn was Wichtiges dagegen, XML Daten direkt über ein XSLT Stylessheet vorzuhalten (außer natürlich solche Erfahrungen, die ich gerede mit dem JavaScript mache)
Hallo
Hallo Manfred,
Ich möchte das Dokument ja als HTML bzw XHTML ausliefern. Wenn ich den xsl-output auf method=xml setze, tut sich in allen Browsern nichts mehr. Das Script läuft nur bei method=html.
Ich bezog mich auf die Serverkonfiguration für .xsl und dort steht offenbar application/octet-stream.
Bei Firefox tut sich aber in allen Fällen nichts. Bei method=xhtml wird gemeldet, dass das Parsen des Stylesheets fehlgeschlagen ist. Bei method=xml läuft die Seite, aber ohne dass das Script aufgerufen wird. Bei method=html hängt sich FireFox auf ...
method="xhtml" ist eine neue Option aus XSLT 2.0, welche Browser noch nicht unterstützen. Ansonsten fällt mir nur noch ein, die script-Inhalte in CDATA-Abschnitte zu legen.
Grüße,
Thomas
Hallo Manfred,
Spricht denn was Wichtiges dagegen, XML Daten direkt über ein XSLT Stylessheet vorzuhalten (außer natürlich solche Erfahrungen, die ich gerede mit dem JavaScript mache)
Ich bin kein Fan clientseitiger XML+XSLT-Verarbeitung und favorisiere die serverseitige Nutzung, z. B. mit Hilfe von PHP. Dann erhalten Browser kontrolliert das, was sie am besten umsetzten können.
Grüße,
Thomas