Referenz eines Objekts? oder: Referenz von <input type=image
Mirko
- javascript
0 Martin Jung0 Mirko0 Martin Jung0 Mirko
Hallo Ihr,
weiß jemand, wie man die Referenz eines Objektes rauskriegt? Was ich meine ist folgendes:
function itsName(obj)
{ alert(obj); alert(obj.REFERENZ }
itsName(document.images[0]); // Beispielobjekt
Das erste alert() gibt ja bekanntlich nur "[object]" aus, das zweite sollte aber sowas ausgeben wie "document.images[0]".
Eigentlich brauche ich das ganze, um rauszukriegen, wie man folgendes Element einer HTML-Datei referenzieren kann:
<input type=image onmouseover="itsName(this)" ...
(der onmouseover Handler funzt in einem input übrigens nur im IE, aber das ist nicht so schlimm)
Eben jenes findet sich nämlich komischerweise nicht als Unterobjekt des übergeordneten document.forms[0] Objekts, in dem drin steht.
Vielleicht kann mir ja jemand statt die erste Frage zu beantworten ja auch sagen, wie man inputs vom Typ image referenziert?
Vielen Dank im Vorausm
Mirko
Hallo Ihr,
Hallöchen Du,
<input type=image onmouseover="itsName(this)" ...
Tja, da dieses Element keinen Namen hat, kannst Du auch keinen abfragen, sondern nur über den Index im Array document.images zugreifen.
Grüße,
Martin
Hi Martin,
<input type=image onmouseover="itsName(this)" ...
Tja, da dieses Element keinen Namen hat, kannst Du auch keinen abfragen, sondern nur über den Index im Array document.images zugreifen.
Jaja, hab' ich nur nicht dazu geschrieben ;).
Allerdings taucht es auch nicht im document.images Array auf.
Und wenn es nun einen name-Parameter hätte?
Es ist so:
<script>
function doHover(obj)
{ obj.src = 'images/buttonh.gif'; }
function unHover(obj)
{ obj.src = 'images/button.gif'; }
function nop()
{}
</script>
<form><input type=image src="images/button.gif" name="FINDEN" onmouseover="doHover()" onmouseover="unHover()"></form>
Ich habe mal ein bissel was weggelassen (action, Image-Objecte zum Wechseln wg. Caching etc...), damit es übersichtlicher wirkt.
Der Punkt ist: Im IE funzt es, aber der NN unterstützt keine Handler im <input type=image> Tag.
Man kann aber trixen, indem man das <input> in <a href="javascript:nop()"><input ...></a> einfasst, und den doHover() und unHover() Aufruf mit einem onmouseover/out Handler in a-Tag machen :).
Dummerweise weiß ich aber nicht, wie man das input-Element geschweige denn die jenes Objektes src-Property referenziert. Für NN müsste ich das aber wissen, da es dort ja nicht mit this geht vom a-Tag aus.
Mirko
Hi,
Dummerweise weiß ich aber nicht, wie man das input-Element geschweige denn die jenes Objektes src-Property referenziert. Für NN müsste ich das aber wissen, da es dort ja nicht mit this geht vom a-Tag aus.
if (document.images){
document.FINDEN.Eigenschaft = Zielwert;
(document.NameDesBildes.Eigenschaft/Methode)
}
Grüße,
Martin
Hi Du,
Dummerweise weiß ich aber nicht, wie man das input-Element geschweige denn die jenes Objektes src-Property referenziert. Für NN müsste ich das aber wissen, da es dort ja nicht mit this geht vom a-Tag aus.
if (document.images){
document.FINDEN.Eigenschaft = Zielwert;
(document.NameDesBildes.Eigenschaft/Methode)
}
Nein, Wie ich schon sagte: es findet sich weder im document.images Array (den es übrigens sowieso immer gibt - wieso also der Test?), noch als Unterobjekt von document.
Mirko
Hi!
Nein, Wie ich schon sagte: es findet sich weder im document.images Array (den es übrigens sowieso immer gibt - wieso also der Test?), noch als Unterobjekt von document.
Nun, sollte es nicht in document.<formname>.elements[<bildname>] zu finden sein, oder statt <bildname> auch einfach die Positionsnummer? Immerhin ist das Bild ja im wesentlichen der Submitbutton eines Formulars.
So long
Hi Du,
Nun, sollte es nicht in document.<formname>.elements[<bildname>] zu finden sein, oder statt <bildname> auch einfach die Positionsnummer? Immerhin ist das Bild ja im wesentlichen der Submitbutton eines Formulars.
Nein, leider nicht, hab' ich aber im ersten Posting schon gesagt.
Ich habe mal mit for (var prop in obj) alle Eigenschaften von document, document.forms etc. durchgecheckt. Es ist einfach nicht da. Ich kann nur drauf zugreifen, indem ich einen Handler direkt im Tag im HTML Source darin installiere, und dann eine function aufrufe, der ich es mit FUNKTIONSNAME(this) übergebe. Das geht zwar wie gesagt mit IE, aber für den NN müsste ich schon wissen, wie man es explizit referenzieren kann, weil ich es da anders lösen müsste (s. meine vorhergehende Postings).
Mirko
Moin auch!
Nein, leider nicht, hab' ich aber im ersten Posting schon gesagt.
Sorry, hatte ich schon wieder vergessen.
Ich habe mal mit for (var prop in obj) alle Eigenschaften von document, document.forms etc. durchgecheckt. Es ist einfach nicht da.
Jetzt wo Du es sagst erinnere ich mich dunkel, schonmal davon gehoert zu haben, dass die image-inputs nicht aufgelistet sind.
Da weiss ich leider nicht, wie man genau das erreicht, was Du willst. Bleiben im wesentlichen wohl zwei Moeglichkeiten: Entweder du verzichtest auf den Hover-Effekt beim Netscape (es ging doch nur um den Bilderwechsel, oder?) oder Du machst halt eine 100%-JS-Loesung, d.h. du nimmst ein normales <img> innerhalb eines <a>, bestueckst den <a> mit onmouseover/out und onclick-Handlern und schickst das Formular bei Klick auf das Bild ab. Dann laesst sich das Formular aber nur noch von JS-faehigen Browsern abschicken. Ich weiss nicht, ob Dir das ins Konzept passt, ich wuerde es zumindest nicht verwenden und lieber auf den Bilderwechsel verzichten.
So long
....................