SVG im iframe mit javascript ansprechen
Katharina
- javascript
0 wahsaga0 Thomas Meinike
Hallo,
ich versuche gerade width und height vom iframe beim Laden neu zu setzen. Der iframe soll die Größe von der SVG Grafik bekommen. Aber ich schaffe es nicht auf das SVG Dokument zuzugreifen:
HTML:
*****
<html>
<head>
<script type="text/javascript">
function setSize()
{
var svgframe = parent.frames['svgobject'];
var svg = svgframe.document.getElementById('svg');
var svgobject = document.getElementById('svgobject');
svgobject.setAttribute('width',svg.getAttribute('width'));
svgobject.setAttribute('height',svg.getAttribute('height'));
}
</script>
</head>
<body onload="setSize()">
<p>
<iframe src="grafik.svg" id="svgobject" name="svgobject" width="455" height="500" type="image/svg+xml"></embed>
<iframe src="form.html" border="0" width="200" align="center" height="200" id="form" name="form" type="text/html"></embed>
</p>
</body>
</html>
SVG:
****
<?xml version="1.0"?>
<svg id="svg" width="200" height="200">
...
</svg>
Was mache ich denn falsch?? Oder muss ich parent.frames['svgobject'].getSVGDocument() benutzen?
Katharina
hi,
Was mache ich denn falsch??
das sollte dir doch eigentlich die javascript-konsole deines browsers mitteilen.
Oder muss ich parent.frames['svgobject'].getSVGDocument() benutzen?
das hast du doch sicher ausprobiert, bevor du gefragt hast?
gruß,
wahsaga
Hi,
das sollte dir doch eigentlich die javascript-konsole deines browsers mitteilen.
Fehlermeldung: 'null' ist Null oder kein Objekt
Oder muss ich parent.frames['svgobject'].getSVGDocument() benutzen?
das hast du doch sicher ausprobiert, bevor du gefragt hast?
Klar hab ichs ausprobiert, vielleicht sieht man ja aber auf den ersten Blick einen Fehler im Javascript Code und kann mir mit Vorschlägen weiterhelfen...
Katharina
Hallo,
function setSize()
{
var svgframe = parent.frames['svgobject'];
var svg = svgframe.document.getElementById('svg');var svgobject = document.getElementById('svgobject');
svgobject.setAttribute('width',svg.getAttribute('width'));
svgobject.setAttribute('height',svg.getAttribute('height'));
}
Mit IE+ASV ist es so loesbar:
function setSize()
{
var svgframe = parent.frames['svgobject'];
var svgobject = svgframe.document.embeds[0].getSVGDocument();
var svg = svgobject.getElementById('svg');
document.getElementById('svgobject').setAttribute('width',svg.getAttribute('width'));
document.getElementById('svgobject').setAttribute('height',svg.getAttribute('height'));
}
<iframe src="grafik.svg" id="svgobject" name="svgobject" width="455" height="500" type="image/svg+xml"></embed>
</embed> --> </iframe>
MfG, Thomas
Hallo Thomas,
Mit IE+ASV ist es so loesbar:
[code lang=javascript]
function setSize()
{
var svgframe = parent.frames['svgobject'];
var svgobject = svgframe.document.embeds[0].getSVGDocument();
var svg = svgobject.getElementById('svg');
Dann kommt der Fehler: document.embeds.0 ist null oder kein Objekt. Kann ich denn mit embeds auch auf Elemente zugreifen, die in einem iframe und nicht in einem embed eingebettet sind?
Katharina
Hallo,
Dann kommt der Fehler: document.embeds.0 ist null oder kein Objekt. Kann ich denn mit embeds auch auf Elemente zugreifen, die in einem iframe und nicht in einem embed eingebettet sind?
Der Fehler kommt bei mir nicht (es passiert das Gewuenschte), aber ich vermute mal, dass da WinXP SP2 im Spiel ist?
Ansonsten mal dieses Beispiel testen.
MfG, Thomas
Der Fehler kommt bei mir nicht (es passiert das Gewuenschte), aber ich vermute mal, dass da WinXP SP2 im Spiel ist?
Ansonsten mal dieses Beispiel testen.
MfG, Thomas
Ja, ich hab WinXP SP2. Das Beispiel funktioniert bei mir bis auf das object. Hab den Code dann mal auf die Festplatte gezogen und ausprobiert und da funktioniert wieder nur das embed. Versteh ich nicht ganz... Notfalls werde ich jetzt halt embed benutzen, aber mit iframe wärs schon schöner, schließlich ist das ein Standard!
Katharina