Hallo Stefan,
das ist und wird ja eine schwere Geburt mit mir *g* und das alles nur, weil ich zu faul bin hunderte HTML-Seiten zu erstellen, wo ich einfach das Bild reinpacke und vom kleinen Vorschaubild drauf verweise.
Ist halt auch so, daß das ja ineffektive ist und da bin ich mit Dir einer Meinung, daß das nicht nötig ist.
Soweit sind wir also schonmal, der HTML-mäßige Ansatz ist schon gut, jetzt müssen wir die JavaScript-Klippe gemeinsam umschiffen.
Beim HTML scheint's wohl nicht zu liegen (ist jedenfalls noch einfach *lol*).
Und jetzt kommt dann für Dich das Erfolgserlebnis, einen Teil der Lösung hast Du gefunden, an dem zweiten Teil bist Du, wenn ich mir Dein Zwischenergebnis anschaue schon nahe dran. Am Schluß wirst Du zu der Lösung dann sagen, das ist meine Lösung, Du wirst aufgrund der Schritte, die Du bei der Entwicklung gegangen bist auch wissen, was bei Änderungen zu machen ist.
Ich denke aus den obigen Beispielen (in den Links) hast Du sicher schon entnehmen können, wie man eine Funktion einleitet, wenn nicht schau bitte nochmal ganz genau nach.
Danach mußt mußt Du dann einfach den in der URL übergebenen Parameter in eine Variable schreiben dazu siehe: http://selfhtml.teamone.de/javascript/objekte/location.htm#search
Nun haben wir noch ein Fragezeichen, was wir am Textanfang entfernen müssen in der Variablen, wie das geht findest Du unter: http://selfhtml.teamone.de/javascript/objekte/string.htm#substr Um die benötigte Anzahl der Zeichen zu ermitteln brauchst Du natürlich die Länge der Zeichenkette minus eins, die ermittelst Du hiermit: http://selfhtml.teamone.de/javascript/objekte/string.htm#length.
Nun hast Du in einer Variablen den Namen Deines Bildes ohne die Dateierweiterung (wenn Du bei der aufrufenden Seite meinem Rat gefolgt bist).
So bis hier sind wir. Ein Tip von mir dazu noch: Wenn Du mit variabler Dateinamenlänge arbeiten willst, dann nimm statt der Konstanten "3" einfach length - 1, aber das, denke ich hast Du auch schon in Deine Überlegungen mit einfließen lassen.
Das Aneinanderhängen von Texten in JavaScript ist ja, wie Du aus allen Beispielen entnehmen kannst recht einfach.
Zum konkatenieren von Textfragmenten nimmt man, wie Du aus http://selfhtml.teamone.de/javascript/sprache/operatoren.htm#zeichenkettenverknuepfung entnehmen kannst, das Zeichen "+". Nun dürfte es Dir auch gelingen den zweiten Teil des Dateinamens anzuhängen.
Das sehe ich noch ein wenig anders *g*. Im Moment schaut's so bei mir aus und ich bekomme wenigstens schon einmal in diesem kleinen Popup den vorderen Teil der Datei (ich nummeriere alle Bilder von 001-999 durch):
<html><head>
<script type="text/javascript">
<!--
function NaviFenster()
{
if(window.location.search != "")
var Datei = window.location.search;
var Bild = Datei.substr(1,3);
alert(Bild);
}
//-->
</script>
</head>
<body onLoad="NaviFenster()">
<center>
<img src="xxx.jpg">
</center>Hier solltest Du aber den Source-Name eines vorhandenen Bildes einbinden.
Hier möchte ich doch nur das Bild haben, was ich oben ermittel (von mir aus, kann ich dort auch ein Bild 0000.jpg, welches einfach nur weiß ist reinpacken)
Das mit dem "Dummy"-Bild ist nur eine Anregung von mir gewesen, da Du sonst unter Umständen ein "Broken-Picture" erhälst. Falls Du Für Deine Bilder eine gemeinsame Größe hast, ist es nicht unsinnig, diese mittels width und heigth zu definieren (siehe: http://selfhtml.teamone.de/html/grafiken/einbinden.htm#breite_hoehe).
Als letzten Schritt in Deiner Funktion mußt Du nun bei dem auf Deiner Seite vorhandenen Bild einfach den Namen des Source-Files austauschen, Aber das ist ja in dem Beispiel von http://selfhtml.teamone.de/javascript/objekte/images.htm#src beschrieben. Vergiß dabei bitte nicht, daß die Indizes bei JavaScript immer bei 0 anfangen.
Einfach ist gut *erbitte noch einmal um Hilfe*.
In dem obigen Link ist beschrieben, wie man den Namen des Source-Files eines Bildes zuweist und austauscht. Wenn Du jetzt die Zeile "document.images[0].src = b[i].src;" betrachtest, siehst Du daß hier document.images[0].src der Wer aus b[i].src zugewiesen wird. b[i].src wurden vorher andere Werte (je nach Index) zugewiesen. Statt der hier vorgenommenen indirekten Zuweisung kannst Du natürlich auch Deinem Bild-Objekt direkt den neuen Source-Namen zuweisen (den Du ja im vorderen Teil ermittelt hast).
Ist halt so, daß sich hier immer wieder Anfänger auf den Schlips getreten fühlen, wenn man ihnen statt einer fertigen Lösung Anregungen und Hilfen bringt, die sie auf den Weg zur eigenen Lösung bringen.
Nein, hab ich kein Problem mit. Natürlich fragt man sich schon "wenn er die Lösung kennt, warum kann er mir dann die paar Zeilen Quelltext nicht geben (ich "programmiere" beruflich in ABAP und dort gibt's auch Hilfe-Foren, wo manchmal die Leute so nett sind *g*).
Weil die paar "Lines of code", die ich Dir dann hinschreiben würde mein Code sind, und Du Dich dann ja durch FremdCode wühlen müßtest, respektive und da ist dann der wichtigere Ansatz, unter Umständen zwar ein Codeschnipsel in Deinen Seiten hättest, wo Du persönlich Dich fragst, was steht da überhaupt und dann eventuell bei der nächsten Änderung verzweifelt das Schräubchen und Rädchen suchst an dem Du drehen kannst. Außerdem ist es auch ein Moment des Respekts vor Deinen Fähigkeiten, daß Du Dir den notwendigen Code anhand von Fragen, Überlegungen und Ratschlägen selbst entwickeln kannst und dabei auch noch, so ganz nebenbei noch ein Stück JavaScript lernst, was Du mit der Anwendung von alert (korrekt natürlich {falls hier Puristen anwesend sind} window.alert), ich denke, daß Du hierzu wahrscheinlich Dich auf den Weg nach http://selfhtml.teamone.de/javascript/objekte/window.htm#alert gemacht hast. Der Weg, den ich hier beschritten habe ist im Endeffekt der schwerere und aufwändigere, ich weiß nicht, ob so ein paar Quelltextzeilen, als weniger aufwändigem Weg nicht eher doch die Methode "hier hast Du, was Du willst, ich hab keine Lust Dir auf dem Weg zu helfen" sind und ob nicht dieser Weg mit dem Code-hinwerfen auch weniger Respekt gegenüber den Fähigkeiten des anderen bedeutet. Aber ich denke hier kommen wir jetzt auch langsam in philosophische, pädagogische und andere Ecken.
Bis denndann
Michael N.