Sven Rautenberg: Netscape *augenverdreh*

Beitrag lesen

Kann mir mal jemand helfen?!

Ich habe eine Bildergalerie mit Java programmiert, ich bin in Java echt noch total unerfahren. Im IE funzt das Script einwandfrei, nur Netscape kriegts mal wieder nicht hin. Wär echt net wenn sich das jemand mal angucken könnte...

http://www.tusnieder-eschbach.de/beta/sww02.html

Ich zähle jetzt nicht auf, was an der Seite alles grausam ist. Außerdem arguentiere ich nicht mit dir, warum das Beachten von anderen Browsern als IE wichtig und richtig ist, und warum man sich in allen Situationen besser an Standards hält (Stichwort Zukunftssicherheit).

Stattdessen sage ich dir, wie du die Bildergalerie besser machen kannst, so dass sie in allen grafikfähigen Browsern funktioniert.

1. Sorge dafür, dass alle Bilder gleich gross sind. Sind sie nicht? Mach sie gleich gross - pack notfalls einen Rahmen/Rand drumherum, verkleinere/vergrößere die Bilder oder schneide etwas ab.

2. Definiere alle Bildnamen ungefähr so, wie gehabt:
var Bild = new Array;
Bild[0]="fussball-sww02/1.jpg";
Bild[1]="fussball-sww02/2.jpg";
...
Sollten die Dateinamen wirklich so eintönig sein, wie hier, dann kannst du locker auf die Definition verzichten und gibst stattdessen einfach nur an:
var maxbild = 47;

Dann musst du aber mit Bild Nr. 0 anfangen - oder das Javascript entsprechend korrigieren.

3. Baue an beliebiger Stelle an der Seite das erste Bild der Galerie in voller Größe ein:

<img src="fussball-sww02/1.jpg" name="galeriebild" width="..." height="..." alt="Bild aus der Galerie" border="0">

4. Definiere zwei Funktionen zum Blättern (und nimm entweder die eine oder andere Variante, indem du den passenden Teil entkommentierst und den anderen auskommentierst):

var aktuellbild = 0; // Aktuell angezeigtes Bild

function vor()
{
  aktuellbild++;
  //Variante mit Dateinamen im Array:
  if (aktuellbild > Bild.length) // Wenn hinter das letzte Bild geblättert wird, das erste nehmen:
  //Alternativ: Bildnamen sind nur Nummern
  // if (aktuellbild > maxbild)
  {
    aktuellbild = 0;
  }
  if (document.images && document.images("galeriebild"))
  {
    //Variante mit den Dateinamen im Array:
    document.images("galeriebild").src = bild[aktuellbild];
    //Alternativ: Bildnamen sind nur Nummern
    // document.images("galeriebild").src = "fussball-sww02/"+aktuellbild+".jpg";
  }
}

function zurueck() //Wichtig: Keine Umlaute in den Funktionsnamen!
{
  aktuellbild--;
  if (aktuellbild < 0) // Wenn vor das erste Bild geblättert wird, wieder das letzte nehmen:
  {
    //Variante mit den Dateinamen im Array:
    aktuellbild = Bild.length;
    //Alternativ: Bildnamen sind nur Nummern:
    // aktuellbild = maxbild;
  }
  if (document.images && document.images("galeriebild"))
  {
    //Variante mit den Dateinamen im Array:
    document.images("galeriebild").src = bild[aktuellbild];
    //Alternativ: Bildnamen sind nur Nummern
    // document.images("galeriebild").src = "fussball-sww02/"+aktuellbild+".jpg";
  }
}

4. Definiere zwei Links (Buttons, Grafiken, Text - egal), welche auf Klick die Blätterfunktionen aufrufen:

<a href="javascript:vor()">vorwärts blättern</a>
<a href="javascript:zurueck()">zurück blättern</a>

Fertig ist der Lack. Ganz easy und leicht verständlich.

Hättest du serverseitige Unterstützung durch z.B. PHP, wäre die Galerieseite in Nullkommanichts automatisch generiert und würde sich durch simples Hinzufügen von neuen Bildern praktisch automatisch anpassen. Ohne dieses mußt du immer noch in der Seite eingreifen (wenn auch nur marginal), um neue Bilder "anzumelden".

Das Skript ist recht simpel geschrieben. Versuche, es zu verstehen.

- Sven Rautenberg