iframe id als globale Variable
aklug
- javascript
Hallo Forum-Leser,
ich habe ein einfach JavaScript verfasst, das die groesse eines iframes (mit id="Fenster" und name="Fenster") anpasst und sich in der datei eins.html befindet:
<script type="text/javascript">
<!--
function framegroesse(breite, hoehe) {
document.getElementById("Fenster").width = breite;
document.getElementById("Fenster").height = hoehe;
}
//-->
</script>
Die iframe-definition befindet sich auch dort:
<iframe id="Fenster" name="Fenster" scrolling="no" id="Fenster" name="Fenster" align="center" marginwidth="0" marginheight="0"></iframe>
In dieser Datei soll im iframe ein grosses Bild nach dem Klicken auf eine Miniaturansicht, die sich in einer zweiten html-datei (zwei.html) befindet, dargestellt werden.
zwei.html enthaelt das folgende hyperlink:
<a target="iframe" href="bild.jpg"><img onclick="framegroesse(640,480)" src="bildvorschau.jpg"></a>
beide dateien sind übrigens teile eines framesets.
wenn ich nun auf das vorschaubild bildvorschau.jpg klicke, kommt immer die JS-fehlermeldung, dass ein Objekt erwartet wird. ich muss also irgendwie die id des iframe als globale Variable definieren. was kann ich tun.
Danke für Eure Antworten im Voraus!
Andy K
Hi,
<iframe id="Fenster" name="Fenster" scrolling="no" id="Fenster" name="Fenster" align="center" marginwidth="0" marginheight="0"></iframe>
hat die Multiphasendeklaration[tm] einen bestimmten Grund? IDs müssen dokumentweit eindeutig sein; ich bin mir nicht sicher, ob das die doppelte Benamsung des selben Elements mit einschließt :-)
<a target="iframe" href="bild.jpg"><img onclick="framegroesse(640,480)" src="bildvorschau.jpg"></a>
ERROR: Required attribute "alt" missing. (Nur nebenbei erwähnt.)
wenn ich nun auf das vorschaubild bildvorschau.jpg klicke, kommt immer die JS-fehlermeldung, dass ein Objekt erwartet wird.
Mach mal eine alert-Kette:
alert(document);
alert(document.getElementById);
alert(document.getElementById("Fenster"));
alert(document.getElementById("Fenster").width);
ich muss also irgendwie die id des iframe als globale Variable definieren.
Diese Schlussfolgerung verstehe ich nicht.
Cheatah
Hi,
Hi,
<iframe id="Fenster" name="Fenster" scrolling="no" id="Fenster" name="Fenster" align="center" marginwidth="0" marginheight="0"></iframe>
hat die Multiphasendeklaration[tm] einen bestimmten Grund? IDs müssen dokumentweit eindeutig sein; ich bin mir nicht sicher, ob das die doppelte Benamsung des selben Elements mit einschließt :-)
Jein. Es ist grundsätzlich nicht zulässig, zwei Attribute mit dem selben Attributnamen in einem Element unterzubringen.
Daß das name- und das id-Attribut auch noch den gleichen Wert haben, ist nicht nur zulässig, sondern sogar vorgeschrieben:
http://www.w3.org/TR/html401/struct/links.html#h-12.2.3, der Satz vor dem roten Kasten, der da lautet:
The id and name attributes share the same name space. This means that they cannot both define an anchor with the same name in the same document. It is permissible to use both attributes to specify an element's unique identifier for the following elements: A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP. When both attributes are used on a single element, their values must be identical.
cu,
Andreas
Hi,
Jein. Es ist grundsätzlich nicht zulässig, zwei Attribute mit dem selben Attributnamen in einem Element unterzubringen.
soweit klar.
Daß das name- und das id-Attribut auch noch den gleichen Wert haben, ist nicht nur zulässig, sondern sogar vorgeschrieben:
Das hingegen war mir neu. Danke für den Hinweis!
Cheatah
Hi,
Das hingegen war mir neu. Danke für den Hinweis!
Wie Du mir, so ich Dir! Siehe TTF-Mime-Type, den Link kannte _ich_ nicht.
cu,
Andreas
Hi,
Wie Du mir, so ich Dir! Siehe TTF-Mime-Type, den Link kannte _ich_ nicht.
was die eine Hand nicht wäscht, lässt die andere liegen - oder wie hieß das? :-)
Ach nein, ich weiß schon: Wie man sich bettet, so schallt es heraus. Nein, das ist auch nicht das Gelbe vom Ohr... Morgenstund hat Blei im Hintern? Viele Köche verderben das Küchenmädchen?[1] Eine Krähe brockt der anderen keine Suppe ein? Ach, mein Gedächtnis, mein Gedächtnis... wie ein Elefant! Oder wie hieß dieses komische Ding, in dem man immer die Nudeln abtropft?
Tennisschläger, danke.
Cheatah, Extreme Wahnsinnig-Making. Terror!
[1] Eine erstaunliche Information, die die letzte Ausgabe des Michelin nannte: Viele Köche _verscherbeln_ den Brei. Wer hätte das gedacht!
Hallo Cheatah,
danke für die schnelle Antwort.
Hi,
<iframe id="Fenster" name="Fenster" scrolling="no" id="Fenster" name="Fenster" align="center" marginwidth="0" marginheight="0"></iframe>
hat die Multiphasendeklaration[tm] einen bestimmten Grund? IDs müssen dokumentweit eindeutig sein; ich bin mir nicht sicher, ob das die doppelte Benamsung des selben Elements mit einschließt :-)
habe jetzt nur mehr id stehen und name entfernt.<a target="iframe" href="bild.jpg"><img onclick="framegroesse(640,480)" src="bildvorschau.jpg"></a>
ERROR: Required attribute "alt" missing. (Nur nebenbei erwähnt.)
"alt" hatte ich auch drinnen, habs nur nicht kopiert.wenn ich nun auf das vorschaubild bildvorschau.jpg klicke, kommt immer die JS-fehlermeldung, dass ein Objekt erwartet wird.
Mach mal eine alert-Kette:
alert(document);
alert(document.getElementById);
alert(document.getElementById("Fenster"));
alert(document.getElementById("Fenster").width);
Hier kommen nur Warnhinweise vom Browser:
[Object], function getElementbyId() {} und [Object]
ich muss also irgendwie die id des iframe als globale Variable definieren.
Diese Schlussfolgerung verstehe ich nicht.
Na ja, war nur so ein Gedanke
Cheatah
Hi,
alert(document);
alert(document.getElementById);
alert(document.getElementById("Fenster"));
alert(document.getElementById("Fenster").width);
Hier kommen nur Warnhinweise vom Browser:
[Object], function getElementbyId() {} und [Object]
d.h. document.getElementById("Fenster").width ist ein ein Objekt, Du behandelst es jedoch wie eine Eigenschaft. Das ist merkwürdig - aber nicht unmöglich.
document.getElementById("Fenster") ist bei Dir "{}", es sollte aber "[Object HTMLIFrameElement]" (o.ä.) sein. Überlege Dir, was in Deinem Code verhindert, dass das Element richtig erkannt wird. Der fehlerhafte HTML-Code könnte beispielsweise ein Auslöser sein; vielleicht liegt es aber auch anderswo, z.B. in einem anderen Element mit gleicher ID.
Cheatah