Re: Abfrage, ob eine Grafik angeklickt worden ist
Von: Thomas 'PointedEars' Lahn (pointedears@web.de) [Profil]
Datum: 02.07.2008 09:36
Message-ID: <486B301B.9070009@PointedEars.de>
Newsgroup: de.comp.lang.javascript
Datum: 02.07.2008 09:36
Message-ID: <486B301B.9070009@PointedEars.de>
Newsgroup: de.comp.lang.javascript
Bernd Harnisch wrot: > Sascha Hüdepohl schrieb: >>> Ich muÃ, innerhalb eines Javascripts abfragen, ob eine Grafik (Icon) >>> angeklickt worden ist. >> >> Was Du beschreibst scheint mir alles etwas kompliziert. >> Vielleicht ändert sich ja Dein Ansatz, wenn Du weisst, dass >> es in JavaScript ein Event-Modell gibt. > Gut das habe ich verstanden. > >> javascriptähnliches Pseudocode-Beispiel: Es ist völliger Unfug, einem Anfänger mit *kapottem* Code (wie unten) zu antworten! Wie soll er da angesichts der vielen fehlerbehafteten bis fchsalen Scripting-Tutorials (einschliesslich SELFHTML) lernen, wie es richtig geht? Da ist es ja sogar noch besser, gar nicht zu antworten, denn dann muss der Anfänger nicht auch noch das falsch Erlernte wieder erst vergessen lernen. Ich darf in diesem Zusammenhang eine bekannte Netzpersönlichkeit zitieren: | An dieser Stelle nochmal ein Aufruf an alle: wenn ihr nicht sicher | seid, dann POSTET HALT NICHT. Es ist niemandem damit geholfen, wenn | hier hundert Leute ihr Halbwissen posten. | (FvL in doc, Message-ID: <slrn8moth3.7al.fefe@baileys.convergence.de>) Und wenn ihr schon trotzdem unbedingt glaubt, die Welt retten zu müssen, dann schreibt wenigstens dazu, dass ihr nicht ganz sicher seid. Dazu genügen schon bekannte Floskeln wie "Quickhack", "ungetestet" usw. >> <script> >> function clickHander() { >> window.alert("halo"); >> } >> </script> >> <img src="icon.png" onclick="clickHandler()"> Und korrekt/sinnvoll/hilfreich sieht es so aus: <script type="text/javascript"> function clickHandler(o) { window.alert(o.src); } </script> <img src="icon.png" alt="Alternativtext" onclick="clickHandler(this)"> > Wenn so ein Ereignis auftritt (also in diesem Fall onclick), wie werte ich > dann aus, wo (also in welchem Frame des Framesets) und welches Icon > angeklickt worden ist, ohne den Script zu verlassen (also eine HTML-Seite > aufzurufen) Bitte geh Dich dringend informieren; Dir fehlen offensichtlich wesentliche (HTML-)Grundlagen, um überhaupt erfolgreich mit (clientseitiger) Script-Programmierung beginnen zu können. Was HTML betrifft, ist SELFHTML da sogar empfehlenswert. <http://de.selfhtml.org/html/> 1. `onclick' ist kein Ereignis, sondern ein Ereignisbehandler (Event-Handler). In diesem Fall ist `onclick' der Name eines eingebauten (intrinsischen) Event-Handler-Attributs des img-Elements. Es wird im Webstandard W3C HTML 4.01 dokumentiert; (dort wird es allerdings mit der Terminologie nicht so genau genommen): <http://www.w3.org/TR/1999/REC-html401-19991224/> (unter "Translations" gibt es auch eine nicht-normative deutsche Ãbersetzung). Das Ereignis (Event) dazu heisst `click'. Es ist im Webstandard W3C DOM Level 2 Events dokumentiert: <http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113> 2. Es gibt keine "HTML-Seiten". Das war schon im Original fchsal (*ein* HTML-Dokument besteht je nach Ausgabemedium aus *mehreren* Seiten), und es wird durch die deutsche Ãbersetzung nicht besser. 3. HTML-*Dokumente* werden nicht aufgerufen, denn HTML ist *keine* Programmiersprache (sondern die Hypertext-Auszeichnungssprache; HyperText Markup Language); sie werden höchstens gerendert/angezeigt. Wie Du nun oben siehst, kannst Du im Event-Handler-Attribut den this-Wert übergeben, um eine Referenz zu dem Objekt zu erhalten, welches das Ereignis behandelt hat. (Hierbei handelt es sich soweit bekannt nicht um einen Standard, sondern um einen historisch gewachsenen Quasi-Standard, der von allen bekannte Benutzerprogrammen unterstützt wird.) Dieses Objekt hat Eigenschaften (hier: src'), die Du auswerten kannst. HTH PointedEars -- Nein. Bei zwei nebeneinander angeordneten Bildschirmen ist der rechte Rand des linken Bildschirms die Mitte des Desktops. Der rechte Rand des Desktops ist der rechte Rand des rechten Bildschirms, und da geht es nicht mehr weiter. (Lars Trebing in darw <3E1C9AC9.6233C9CA@ltrebing.de>)[ Auf dieses Posting antworten ]
