Verständnisprobleme - Bilder vor - und zurück
Znol
- javascript
Hallo,
ich möchte selbst verstehen, was ich mit Javascript und Bildern tun kann. Leider klappt das gar nicht gut. Hier einmal ein Auszug von vielen...
1.Als erstes die Bilder auflisten, mit einem Array.
Da verstehe ich nicht, was das [] in dem Moment darstellt?
2.Mir wird immer ausgegeben, das Bild hat keine Eigenschaften, ist damit z.B. lowsrc, src, name etc. gemeint?
3. Würde denn zumindest der Event-händler onclick auf die Funktion zugreifen?
4.Ich wollte eigentlich if...else verwenden, dazu braucht man oftmals Vergleichsoperatoren... darf ich da keine anderen Operatoren nehmen? Sind die Operatoren sozusagen zugeteilt?
<script type="text/javascript">
<!--
var Bild = new Array();
Bild[0] = new Image(900,330);
Bild.src[0] = "bredela.jpg";
Bild[1] = new Image(900,330);
Bild.src[1] = "bredelb.jpg";
Bild[2] = new Image(900,330);
Bild.src[2] = "bredelc.jpg";
var Bildende=2;
var Bildanfang=0;
function Seite () {document.images["angezbild"].src = Bild.src}
//-->
</script>
</head>
<body>
<p><img src="bredela.jpg" name="angezbild" alt="b"></p>
<p><img src="vor.jpg" name="vorw" alt="v" onclick="Seite()"><img src="zurueck.jpg" name="zur" alt="z" onclick="Seite()"></p>
</body>
Also, wenn ich darauf Antwort bekomme, hoffe ich das ganze schon etwas klarer zu sehen.
5.Ist onclick hier überhaupt noch sinnvoll? Weil ich es meist anders gelöst sehe, nämlich [<a href="javascript:Blaettern(-1)"><<</a>], ist das zurück zuführen auf history.back? Warum sind dort die eckigen Klammern?
6.Bin ziemlich verwirrt, wie überprüft Ihr das Script ausser mit Mozilla und der Javascript Console?
Ich weiß, dass dieses Script eigentlich sehr kurz ist, und dennoch verstehe ich so vieles nicht. (Anmerkung: ich wollte lediglich ein Bild anzeigen lassen mit einem Vor - und Zurück Button für die anderen anzuzeigenden Bilder).
Wobei die "Buttons" aus Bildern bestehen sollen, hatte auch schon <button> benutzt, gefiel mir jedoch nicht.
Danke fürs durchlesen. Ähem....
Gruß, Znol
Hi,
Da verstehe ich nicht, was das [] in dem Moment darstellt?
das, was es bei JavaScript immer darstellt: den Zugriff auf einen Array-Index.
2.Mir wird immer ausgegeben, das Bild hat keine Eigenschaften, ist damit z.B. lowsrc, src, name etc. gemeint?
Welches "das Bild" hat wann und wobei keine Eigenschaften? Was hast Du getan um zu überprüfen, was "das Bild" überhaupt ist und welche Eigenschaften es hat?
- Würde denn zumindest der Event-händler onclick auf die Funktion zugreifen?
Ja.
4.Ich wollte eigentlich if...else verwenden, dazu braucht man oftmals Vergleichsoperatoren... darf ich da keine anderen Operatoren nehmen?
Du darfst jede gültige Syntax verwenden. Ein 'if' erwartet natürlich ein Boole'sches Ergebnis, um seine Aufgabe erfüllen zu können, so dass bei Bedarf eine implizite Konvertierung vorgenommen hat. "if (i+3)" oder "if (i=9)" sind also trotz des kompletten Fehlens von Vergleichsoperatoren durchaus gültig, und manchmal sogar sinnvoll.
Sind die Operatoren sozusagen zugeteilt?
Nein. Ihre Bedeutung ist es jedoch schon.
var Bild = new Array();
[...]
function Seite () {document.images["angezbild"].src = Bild.src}
Hast Du das Array-Objekt an anderer Stelle per Prototyping erweitert? Andernfalls hat es keine src-Eigenschaft.
<p><img src="bredela.jpg" name="angezbild" alt="b"></p>
Wieso ergibt ein Bild einen Absatz im Fließtext?
5.Ist onclick hier überhaupt noch sinnvoll?
Wenn Du auf einen Klick reagieren willst, ist es durchaus empfehlenswert, onclick zu verwenden.
Weil ich es meist anders gelöst sehe, nämlich [<a href="javascript:Blaettern(-1)"><<</a>], ist das zurück zuführen auf history.back?
Nein, sondern darauf, dass das href-Attribut des <a>-Elements mit einer URL gefüllt werden muss, welche sich auch des Pseudo-Protokolls "javascript:" bedienen darf - genau wie z.B. bei "mailto:". In einem Event-Handler steht Script-Code, keine URL. Natürlich ist es wieder ziemlich sinnentleert, einen Link(!) anzubieten, der dann auf eine potenziell funktionsfreie URL verweist.
Warum sind dort die eckigen Klammern?
Aus genau dem Grund, aus dem sie immer in HTML-Textnodes stehen: Weil jemand eine eckige Klammer als Inhalt vermitteln wollte.
6.Bin ziemlich verwirrt, wie überprüft Ihr das Script ausser mit Mozilla und der Javascript Console?
Kommt darauf an. Überprüfen im Hinblick auf ...?
Ich weiß, dass dieses Script eigentlich sehr kurz ist, und dennoch verstehe ich so vieles nicht.
Das ist ja nicht schlimm. Zwölf Koreanische Zeichen sind ebenfalls nicht viel, und ich verstehe davon kein einziges Stück.
Wobei die "Buttons" aus Bildern bestehen sollen, hatte auch schon <button> benutzt, gefiel mir jedoch nicht.
Warum hast Du bei der Wahl des HTML-Codes an <button> gedacht?
Cheatah
Hallo Cheatah,
ich habe die Antworten dankend gelesen.
Lese mir noch einmal auf einer anderen Homepage das Programmieren mit Javascript durch, um es dort vielleicht mehr zu verstehen.
Ich bin nun auch endlich auf javascript: und dessen Bedeutung gestossen,
gerade bevor Du mir geantwortet hattest.
Werde danach noch einmal hier schreiben, und hoffe darauf, dann etwas bessere Fragen stellen zu können.
Derzeit ist mir z.B. einfach unklar, ob ich einen Array-Index haben muss oder ob ich nicht auch eine Unterscheidung aufgrund des Dateinamens vornehmen kann.
Mit dem "Bild" war schon die Variablenbezeichnung über den Array gemeint laut der Javascript Console.
An <button> hatte ich gedacht, weil ich zufällig wieder darauf stiess, als ich nach onclick suchte.
Überprufen des Scripts auf ? ja, Sinn, Richtigkeit? So eine Art Validierung?
Auf button bin ich gestossen, als ich nach onclick gesucht habe, nur war das auch nicht wirklich das, was ich brauchte.
Ich werde jetzt erst einmal mir noch diese andere Seite durchlesen und dann noch versuchen, etwas zustande zu bekommen, was korrekt ist und funktioniert.
Doch werde ich die Datei auf jeden Fall auch mit CSS umsetzen.
So, ich gehe wieder lesen, habe ja auch noch so einiges zusammen zu bekommen.
Danke aber für Deine mich schon weiterbringende Antworten, nur scheine ich einfach noch zuviel nicht umzusetzen zu wissen.
Gruß, Znol
Hi,
Lese mir noch einmal auf einer anderen Homepage das Programmieren mit Javascript durch, um es dort vielleicht mehr zu verstehen.
streiche das "vielleicht". Du wirst ständig weiter lernen.
Derzeit ist mir z.B. einfach unklar, ob ich einen Array-Index haben muss oder ob ich nicht auch eine Unterscheidung aufgrund des Dateinamens vornehmen kann.
Du musst nicht, und das einzige, was Dich daran hindern wird, eine Unterscheidung anhand von Dateinamen vorzunehmen ist, dass Dir in HTTP kein Dateiname zur Verfügung steht, sondern nur URIs.
Mit dem "Bild" war schon die Variablenbezeichnung über den Array gemeint laut der Javascript Console.
Und die sagte Dir, dass Bild.src keine Properties hat, was daran liegt, dass es undefined ist, denn Array-Objekte haben keine src-Eigenschaft. Ergo kann man auch nicht auf einen Array-Index dieser Eigenschaft zugreifen. Eventuell bringt Dich aber die src-Eigenschaft des Objektes im Array-Index der Bild-Variablen weiter.
An <button> hatte ich gedacht, weil ich zufällig wieder darauf stiess, als ich nach onclick suchte.
Ah. HTML-Code wird anhand des Inhalts gewählt, nicht anhand von gewünschter Dynamik oder Darstellung. Wenn Du <button> nicht verwenden würdest, falls Du nicht mit JavaScript irgend was austauschen möchtest, so kannst Du es auch nicht verwenden, wenn Du einen entsprechenden Wunsch hegst.
Überprufen des Scripts auf ? ja, Sinn, Richtigkeit? So eine Art Validierung?
Ob Programm-Code das tut, was er soll, erfährst Du durch Unit-Tests. Ob ein Programm seine Funktion erfüllt, erfährst Du durch User-Acceptance-Tests. Ob es eine Unit-Test-Suite für JavaScript gibt, weiß ich ehrlich gesagt nicht; für UATs könnte sich Selenium anbieten. Ich denke aber, dass Du in diesem Fall erst einmal JavaScript besser verstehen möchtest, um dann beurteilen zu können, was Du da eigentlich tust. Kleiner Tipp: Der Ansatz ist, von der Verwendung des 'name'-Attributs vielleicht abgesehen, schon mal gar nicht schlecht; und Du hast ja schon angekündigt, mehr lernen zu wollen.
Doch werde ich die Datei auf jeden Fall auch mit CSS umsetzen.
Was meinst Du damit?
Danke aber für Deine mich schon weiterbringende Antworten, nur scheine ich einfach noch zuviel nicht umzusetzen zu wissen.
Jo. Meine koreanischen Romane sind auch noch nicht wirklich ausgereift.
Cheatah
Hallo,
danke für die Erläuterungen.
Noch mal kurz, weil ich nach drei Tage Javascript, brauche ich doch mal wieder einen Erfolg.
Mit CSS und Verweisen kann ich die Seite(n) so hinbekommen, nur dachte ich halt, dass mein Freund, für die ich die Seite schreibe, dann weniger
Webspace erwerben müsste, doch eigentlich ist es denke ich eh sinnvoll,
mit CSS zu arbeiten.
Also mach ich mich jetzt schnell daran, und dann geht es nochmal von vorne los mit Javascript, und dann hab ich auch nicht so einen inneren Zeitdruck.
Selenium - werfe ich aber noch jetzt Blicke drauf.
Allerdings - warum es 12 koreanische Zeichen sind, verstehe ich auch noch nicht.
Gruß, Znol
Hi,
Mit CSS und Verweisen kann ich die Seite(n) so hinbekommen, nur dachte ich halt, dass mein Freund, für die ich die Seite schreibe, dann weniger
Webspace erwerben müsste,
es stimmt zwar, dass ein Nebeneffekt von CSS die verringerte Datenmenge ist, aber ob sich dies in der Größe des Webspaces niederschlägt, ist eine recht grenzwertige Frage :-)
doch eigentlich ist es denke ich eh sinnvoll, mit CSS zu arbeiten.
Ja, auf jeden Fall.
Also mach ich mich jetzt schnell daran, und dann geht es nochmal von vorne los mit Javascript, und dann hab ich auch nicht so einen inneren Zeitdruck.
Gute Wahl.
Allerdings - warum es 12 koreanische Zeichen sind, verstehe ich auch noch nicht.
Sowohl die Anzahl als auch die Sprache entstammen einer gerichteten Willkür. Es hätten auch 17 Hieroglyphen oder 8 chinesische Schriftzeichen sein können.
Cheatah