Hallo,
Ich habe das schnell in einem Internetcafe geschrieben weil ich Deine Online Beispiele (80,81) nicht auf meinen Internetcomputer anschauen kann (win 95 und svg-viewer vertraegt sich scheinbar nicht). Es ist zwar glaube ich alles angezeigt worden, aber zwischendurch ist soetwas wie eine javascript-runtime error Anzeige aufgetaucht. Das nur als zusatzliche Information weil Du einmal etwas von aktiveX geschrieben hast.
Der Adobe SVG Viewer 3.0 ist offiziell erst ab Win98 gedacht, ich habe das Teil aber auch schon unter Win95b erfolgreich installiert.
Wenn in den Beispielen Scriptfehler auftreten, dann ist vermutlich eine aeltere Viewerversion vorhanden (der ASV 2 wird z. B. vom Acrobat Reader 5.0x mitgebracht).
Die Scripts sind uebrigens in den SVG-Dokumenten eingebettet, es wird also nicht aus dem HTML-Code auf SVG-Inhalte zugegriffen - wie von Dir beabsichtigt!
Was Deine Antwort auf "Kannst Du mir bitte noch einmal die ganze Funktion hinschreiben" betrifft. Das mit dem pulldownmenu hat mich nun aufgehalten hier weiter zu arbeiten.
Ich habe mal das Beispiel mit den Kreisen modifiziert und statt der Radiobuttons eine zweite Auswahlliste eingebaut:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 09/02</title>
<script language="JavaScript" type="text/javascript">
<!--
function NeueFarbe2SVG()
{
var d,k,f,svgobj;
d=document.forms[0];
f=d.elements["farbe"].options[d.elements["farbe"].selectedIndex].value;
k=d.elements["kreis"].options[d.elements["kreis"].selectedIndex].value;
if(f!="Auswahl" && k!="Auswahl")
{
svgobj=document.getElementById("svgkreise").getSVGDocument();
svgobj.getElementById(k).getStyle().setProperty("fill",f);
}
}
//-->
</script>
</head>
<body>
<object id="svgkreise" data="kreise.svg" width="500" height="100" type="image/svg+xml">SVG-Objekt - Viewer erforderlich</object>
<form action="">
<select name="farbe" onchange="NeueFarbe2SVG()">
<option value="Auswahl">Farbe</option>
<option value="#F00">rot</option>
<option value="#090">grün</option>
<option value="#00C">blau</option>
</select>
<select name="kreis" onchange="NeueFarbe2SVG()">
<option value="Auswahl">Kreis</option>
<option value="k1">Kreis 1</option>
<option value="k2">Kreis 2</option>
<option value="k3">Kreis 3</option>
</select>
</form>
</body>
</html>
Ich hoffe, das Prinzip wird deutlich. Allerdings wird das entscheidende Problem bleiben: der fehlerfreie Zugriff auf das SVG-Objekt aus dem HTML-Kontext heraus.
MfG, Thomas