Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Re: Bilderwechsel
Autor: PointedEars [Beiträge: 4009]
Datum: 05.03.2010 21:42:14
> oh, das "this." war gestern nur ein test von mir,
> natürlich ist das so im code nicht vorhanden -
> war wohl schon ein wenig müd ;)
`this' ist (bis auf eine Ausnahme in Implementationen von ECMAScript Ed. 3) immer eine implizit vorhandene Referenz auf ein Objekt, ausserdem ein reserviertes Wort und *darf* deshalb *nicht* definiert/deklariert werden.
In diesem Fall ist `this' eine Referenz auf das (eingebaute) Globale Objekt, dessen Methode Deine global deklarierte Funktion ist.
Das Globale Objekt hat in allen mir bekannten DOMs eine host-definierte (d.h. nicht im Standard festgelegte, aber durch ihn erlaubte) document-Eigenschaft -- deshalb kannst Du einfach `document' schreiben, das ist in diesem Fall also gleichbedeutend mit `this.document' (referenziert dieselbe HTMLDocument-Instanz).¹
`this.document.just' liefert jedoch keine Objektreferenz, sondern den undefined-Wert, weil diese HTMLDocument-Instanz nunmal keine just-Eigenschaft hat.  Deshalb führt
  this.document.just.src
genauso wie
  document.just.src
zu einem Laufzeitfehler (TypeError) mit der (leicht irreführenden) Nachricht "document.just.src ist `null' oder kein Objekt".
> da ich den ganzen code mit php zusammen bauen
> lasse ist die "image[0]" lösung nicht ganz das
> optimum
> ich lasse beim anzeigen der grafik prüfen, ob die
> bilder da sind, ansonsten wird nur ein dummy.jpg
> angezeigt
Gibt's das auch in sinnvoll (und mit funktionierender Shift-Taste)?
> wenn ich nun ".image." anspreche versucht er
> natürlich grundsätzlich die bilder zu ändern -
Nein, sicher nicht.  Stattdessen führt die Zuweisung zu einem Laufzeitfehler.  Entweder, weil es die Eigenschaft nicht gibt (siehe oben), oder weil Du versuchst, an ein Host-Objekt zuzuweisen.
> habe ich nun aber schon umgangen ;)
Also auf diese Erklärung bin ich jetzt echt gespannt.
> schöner wäre es direkt mir "just" gewesen, aber
> der liebe IE ...
Du musst nur die bisherigen Antworten sorgfältiger lesen, dann klappt's auch mit dem IE.  Siehe auch meine andere Antwort.
Ausserdem unterstützt IE/MSHTML kein XHTML, deshalb sollte HTML 4.01 deklariert und folgerichtig der Slash am Ende des Start-Tags entfernt werden.  PHP musst Du ggf. noch darauf trimmen, HTML statt XHTML zu generieren (z.B. bei nl2br()), oder Du verwendest eigene Funktionen.
HTH
PointedEars
___________
¹  Dies ist natürlich implementationsabhängig.  Die andere Möglichkeit ist, dass sich in der Scope Chain noch vor dem Globalen Objekt ein Host-Objekt befindet, welches eine document-Eigenschaft hat.  Dies könnte dasselbe Objekt sein, welches durch die ebenfalls host-definierte window-Eigenschaft des Globalen Objekts referenziert wird.  Das Ergebnis wäre aber letztendlich dasselbe.
Zum Abschicken deines Beitrags bitte die Schaltfläche "Abschicken" nur einmal anklicken und warten. Der Server braucht manchmal
einige Zeit, bis er den Beitrag in die Datenbank übernommen hat. Wenn du die Schaltfläche mehrmals drückst, erscheint dein Beitrag
auch mehrmals im Forum.
Bewerten Sie Ihren Webhosting-Provider
Wie zufrieden sind Sie mit Ihrem Webhosting-Provider? Gibt es Probleme beim Service, mit der Performance oder der Abrechnung?
Teilen Sie jetzt Ihre Erfahrungen mit anderen Webmastern und schreiben Sie eine Provider-Bewertung. Mit etwas Glück können Sie ein Apple iPad gewinnen!
Weitere Informationen und Teilnahme...