Zugriff auf Bilder mit Mozilla
ich
- javascript
0 Struppi0 Tim Tepaße0 Herbalizer
Hallo,
ich habe eine Frage zu Javascript:
Ich habe ein <div id="unten"> mit Style Sheets positioniert. Es enthält ein Bild <img id="y1">. Dieses Bild möchte ich mittels Javascript austauschen.
Im IE6 verwende ich dazu:
document.getElementById('unten').document.images.y1.src = xxx.src;
Netscape 4:
document.layers['unten'].document.images.y1.src = xxx.src;
Nur, wie sag' ich's meinem Mozilla bzw. Netscape 6/7?
Vielen Dank für Hinweise.
Hallo,
ich habe eine Frage zu Javascript:Ich habe ein <div id="unten"> mit Style Sheets positioniert. Es enthält ein Bild <img id="y1">. Dieses Bild möchte ich mittels Javascript austauschen.
Im IE6 verwende ich dazu:
document.getElementById('unten').document.images.y1.src = xxx.src;
echt das klappt im IE? das ist die Netscape 4.x Variante.
Aber warum machst du's nicht so: document.getElementById('y1').src = xxx.src;
Im IE6 verwende ich dazu:
document.getElementById('unten').document.images.y1.src = xxx.src;echt das klappt im IE? das ist die Netscape 4.x Variante.
Das kann gar nicht im Netscape 4 gehen, weil
getElementById erst ab Netscape 6 bzw. Mozilla unterstützt wird.
Aber warum machst du's nicht so: document.getElementById('y1').src = xxx.src;
Habe ich probiert. Aber dann sagt er mir document.getElementById('y1') has no properties.
Im IE6 verwende ich dazu:
document.getElementById('unten').document.images.y1.src = xxx.src;echt das klappt im IE? das ist die Netscape 4.x Variante.
Das kann gar nicht im Netscape 4 gehen, weil
getElementById erst ab Netscape 6 bzw. Mozilla unterstützt wird.
OK, richtig.
Ich meinte aber das ein Layer ein document ist. Ich hab ich noch nie gehört, dass das der IE auch so sieht.
Aber warum machst du's nicht so: document.getElementById('y1').src = xxx.src;
Habe ich probiert. Aber dann sagt er mir document.getElementById('y1') has no properties.
Tja, dann ist irgendwo was falsch. Ich hab grad keinen MZ da, aber von meinem Verständniss müßte das klappen:
<div id="xxx"><img id="y1" src="test.gif"></DIV>
<script>
var obj = document.getElementById('y1');
alert(obj.src);
</script>
Wenn nicht, dann muss ich mich noch ein wenig mehr mit dem DOM beschäftigen.
Struppi.
Tja, dann ist irgendwo was falsch. Ich hab grad keinen MZ da, aber von meinem Verständniss müßte das klappen:
<div id="xxx"><img id="y1" src="test.gif"></DIV>
<script>
var obj = document.getElementById('y1');alert(obj.src);
</script>
Das liefert "obj has no properties".
Tja, dann ist irgendwo was falsch. Ich hab grad keinen MZ da, aber von meinem Verständniss müßte das klappen:
<div id="xxx"><img id="y1" src="test.gif"></DIV>
<script>
var obj = document.getElementById('y1');alert(obj.src);
</script>Das liefert "obj has no properties".
Tja, dann lieg ich wohl falsch.
Struppi.
Tja, dann ist irgendwo was falsch. Ich hab grad keinen MZ da, aber von meinem Verständniss müßte das klappen:
<div id="xxx"><img id="y1" src="test.gif"></DIV>
<script>
var obj = document.getElementById('y1');alert(obj.src);
</script>Das liefert "obj has no properties".
Hallo Du,
Im IE6 verwende ich dazu:
document.getElementById('unten').document.images.y1.src = xxx.src;
Wieso so umständlich?
document.getElementById('y1').src
sollte doch auch wunderbar funktionieren, ohne irgendwelche Umwege über
Dein div. Sowohl im IE also auch im Mozilla.
Hi!
Im IE6 verwende ich dazu:
document.getElementById('unten').document.images.y1.src = xxx.src;
Scheissbrowser. Das der so einen Quatsch interpretiert. IE ab 5 und Mozilla/NS6 schlucken vorbehaltlos document.getElementById('y1').src
Alternativ geht auch document.images['y1'].src oder, die Methode die überall (auch in NN4) funktioniert: document.images[bildnummer].src
Wenn nix von diesen dreien funtioniert, wird das dokument entweder als XML ausgeliefert (was ich nicht glaube) oder du solltest für einen gültigen Quelltext sorgen: http://validator.w3.org
Gruß Herbalizer
Hallo, Herbalizer,
document.getElementById('unten').document.images.y1.src = xxx.src;
IE ab 5 und Mozilla/NS6 schlucken vorbehaltlos document.getElementById('y1').src
Alternativ geht auch document.images['y1'].src oder, die Methode die überall (auch in NN4) funktioniert: document.images[bildnummer].srcWenn nix von diesen dreien funtioniert,
Wieso sollte es denn nicht? Ich dachte, wenn das Dokument als XHTML ausgeliefert wird, ist beispielsweise document.body nicht verfügbar (was eigentlich ebenfalls nicht?), aber wieso sollte document.images in diesem Fall (von dem du möglicherweise nicht redest, siehe unten) nicht vorhanden sein?
wird das dokument entweder als XML ausgeliefert (was ich nicht glaube)
Meintest du XHTML (application/xhtml+xml)? Bei XML (text/xml oder application/xml) ist es vielleicht verständlich, aber wieso sollte kein DOM-Zugriff über JavaScript möglich sein - ist window.document schon (X)HTML-spezifisch?
Grüße,
Mathias
Hi!
Wieso sollte es denn nicht? Ich dachte, wenn das Dokument als XHTML ausgeliefert wird, ist beispielsweise document.body nicht verfügbar (was eigentlich ebenfalls nicht?), aber wieso sollte document.images in diesem Fall (von dem du möglicherweise nicht redest, siehe unten) nicht vorhanden sein?
Wenn eine Seite als XHTML (application/xhtml+xm) ausgeliefert wird, sollte alles was in DOM-Level2-HTML definiert wurde, angewendet werden können, genauso, als ob das Dokument als HTML (text/html) ausgeliefert werden würde. (Siehe Links in gleich folgendem Link)
Allerdings hat Mozilla so seine Probleme damit http://bugzilla.mozilla.org/show_bug.cgi?id=111514#c58
Meintest du XHTML (application/xhtml+xml)? Bei XML (text/xml oder application/xml) ist es vielleicht verständlich, aber wieso sollte kein DOM-Zugriff über JavaScript möglich sein - ist window.document schon (X)HTML-spezifisch?
Ich meinte XML. Denn da kommt kein DOM-Level2-HTML zur Anwendung, und somit gibt es weder die ein HTMLImageObject, und somit auch keine Property namens src, noch eine Collection.
Wöllte man hier auf das src-Attribut zugreifen so müsste dies mit document.getElementById('y1').getAttribute('src') geschehen. Geändert wird der Wert mittels document.getElementById('y1').setAttribute('src','bla.png'). Es kann notwendig sein, den XMLNamespace mit anzugeben, damit kenntlich gemacht wird, zu welchem XMLNamensraum das Element gehört:
document.getElementById('y1').getAttributeNS('http://www.w3.org/1999/xhtml','src')
document.getElementById('y1').setAttributeNS('http://www.w3.org/1999/xhtml','src','bla.png')
Siehe auch Attatchments zu http://bugzilla.mozilla.org/show_bug.cgi?id=155233 und vgl. dazu http://rcswww.urz.tu-dresden.de/~rs324721/test.xml http://rcswww.urz.tu-dresden.de/~rs324721/test.xhtml http://rcswww.urz.tu-dresden.de/~rs324721/test.html bei denen es um das Erzeugen eines Images geht.
Gruß Herbalizer