Verbindung XML-Javascript mit HTML-Javascript
roger
- javascript
Abend,
ich binde eine xml/svg Datei in meine HTML Datei ein.
<OBJECT type="image/svg+xml" data="svgslider.svg" height="200" ></OBJECT>
In der Datei habe ich SVG-Grafik und ein Javascript definiert.
<script type="text/javascript"><![CDATA[
var value = 0;
var i;
var dynname;
var rectangle;
usw.
Ist es nun möglich mit Javascript vom HTML-File auf eine Variable oder Funktion vom xml/svg File zugreifen. (Ich will damit die Grafik verändern)
Wenn es eine andere/bessere Möglichkeit der Einbindung von xml/svg und Benutzung des xml-Scripts gibt... dann nur heraus damit.
Danke
roger
Abend,
ich binde eine xml/svg Datei in meine HTML Datei ein.
<OBJECT type="image/svg+xml" data="svgslider.svg" height="200" ></OBJECT>In der Datei habe ich SVG-Grafik und ein Javascript definiert.
<script type="text/javascript"><![CDATA[
var value = 0;
var i;
var dynname;
var rectangle;
usw.Ist es nun möglich mit Javascript vom HTML-File auf eine Variable oder Funktion vom xml/svg File zugreifen. (Ich will damit die Grafik verändern)
Wenn es eine andere/bessere Möglichkeit der Einbindung von xml/svg und Benutzung des xml-Scripts gibt... dann nur heraus damit.
Danke
roger
Hallo Roger,
ich habe bei mir die SVG-Datei über einen iframe eingebunden:
<iframe src="./SVG/editor.svg" id="svgFrame" height="600" width="50%" frameborder="1" style="float:left" >
Der SVG-Tag sieht so aus:
<svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
zoomAndPan="disable"
wichtig dabei die ID "SVG", in dieser ist die Gruppe "drawing" enthalten, welche die Objekte der ZEichenflaeche enthaelt
Der Zugriff auf alle Objekte dieser Zeichenflaeche sieht dann so aus:
function GetShapes()
{
var svgFrame = top.frames['svgFrame'];
var svgObject = svgFrame.document.embeds[0].getSVGDocument();
var svg = svgObject.getElementById('svg');
var drawing = svg.getElementById('drawing');
var drawingNodes = drawing.childNodes;
return drawingNodes;
}
Bin mir nicht 100% sicher, ob das noch so funktioniert, da ich zwischendurch mal die SVG-Datei per "embed" eingebunden habe und das ganze schon ne Weile nicht mehr benutzt hab. Welche Art zum Einbinden am Besten ist, weiss ich auch nicht. Bin da noch im Try and Error Stadium.
Statt der Gruppe drawing kannst du dir natürlich auch jedes andere Objekt holen und dann über .setAttribute() die Attribute manipulieren.
Aja ausgeführt wird das ganze aus einer externen Javascript-Datei, aber das dürfte nicht viel Unterschied machen. Naja vollends konnte ich dir nun nicht helfen, aber jetzt hast mal ne Richtung.
ansonsten immer hilfreich in der Richtung:
Thomas Meinikes Seite