Hallo!
Nichts für ungut, aber könntest Du bitte nächstes Mal das XSLT auf das Wesentliche reduzieren? Das ganze VBScript-Zeug ist nämlich absolut nicht relevant für das Problem.
Du hast in Deiner Ausgabe gleich zwei Probleme:
-
Wie ich bereits sagte, ist img_print.src = '...' der falsche Weg, um Bilder anzusprechen. Korrekt wäre document.images['img_print'].src = '...';
-
Aber selbst das wird Dir nichts nützen. Denn: Du generierst viele solcher Bilder, nicht nur eines. Dann musst Du natürlich die Bilder auch eindeutig identifizeren können, um in JS gerade das richtige Bild austauschen zu können.
Also:
Unter
<xsl:variable name="curr_version">
<xsl:value-of select="Version"/>
</xsl:variable>
setze noch ein:
<xsl:variable name="curr_version_id" select="concat('img_print_', translate($curr_version, '.', '_'))" />
Das erzeugt Dir eine Variable $curr_version_id, die einen eindeutigen Namen für Dein Bild enthält, also z.B. img_print_D2_31_1 (das translate ersetzt den '.', der in name="..." eher ungünstig ist, durch einen '_').
Dann setzt Du das name-Attribut des Bildes entsprechend und nutzt den Wert auch in Deinem generierten Javascript:
<a onmouseover="document.images['{$curr_version_id}'].src='.../printer_grey.gif';" target="drucken" href="versionen/{$curr_version}/print.xml" onmouseout="document.images['{$curr_version_id}'].src='.../printer_white.gif';">
<img name="{$curr_version_id}" src=".../printer_white.gif" height="14" border="0" alt="Drucken" />
</a>
Dann sollte Dein Mouseover auch funktionieren.
Viele Grüße,
Christian
PS: Übrigens: <xsl:variable name="curr_version" select="string(Version)" />
ist in meinen Augen viel sinnvoller, als Deine Konstruktion mit variable + value-of. Nur als kleine Anmerkung.