Mehrere, aufeinander aufbauende HTML-Dateien in einem Verzeichnis sollen per Link aneinandergehängt werden. In diesem Fall bietet sich folgende Lösung an:
Das JavaScript „liest“ den Dateinamen aus und die Funktionen javascript:previousFile() und javascript:nextFile() ermöglichen ein weiterklicken, solange es Dateien gibt, die sich im Dateinamen nur in der niedrigeren oder höheren (fortlaufenden) Nummer unterscheiden.
Die drei hier verwendeten Dateien haben die Namen dokument_seitennavigation_page_00.html (vorherige Seite), dokument_seitennavigation_page_01.html (diese Seite) und dokument_seitennavigation_page_02.html (nächste Seite). Mit diesem JavaScript können maximal 100 Dateien »verbunden« werden. Prinzipiell kann das Script ausgebaut werden, um eine größere Seitenzahl anzusteuern.
Vorherige Seite || Nächste Seite
(JavaScript-Links)
Das Script muss im head-Bereich der HTM-Datei stehen, eine Auslagerung in eine extra Script-Datei führt bei vielen Browsern zu Fehlfunktionen. Die Navigation erfolgt über die oben benannten Funktionen und wird als Link
<a href="javascript:previousFile()">Text oder Bild</a>
bzw.
<a href="javascript:nextFile()">Text oder Bild</a>
zur Verfügung gestellt.
Nachfolgend sehen Sie den Quelltext mit Kommentaren.
|
/* Beachten Sie, dass dieses Script im Abschnitt HEAD der Datei stehen sollte, um sicher zu sein, dass die Funktionen geladen sind, bevor die sie aufrufenden Links erstellt wurden. */
var URL = unescape(location.href)
// wandle aktuelle URL in pures ASCII
var xstart = URL.lastIndexOf("/") + 1
// ermittle den Anfang des Dateinamens
var xend = URL.length
// ermittle Ende des Dateinamens
var digitOnePlace = URL.lastIndexOf('.') - 2
// ermittle die Position der ersten Ziffer im Dateinamen
var digitTwoPlace = URL.lastIndexOf('.') - 1
// ermittle die Position der zweiten Ziffer im Dateinamen
var digitOne = URL.charAt(digitOnePlace)
// ermittle die erste Ziffer der Dateinummer
var digitTwo = URL.charAt(digitTwoPlace)
// ermittle die zweite Ziffer der Dateinummer
var filePrefix = URL.substring(xstart,digitOnePlace)
// ermittle den ersten Teil des Dateinamens
var suffixStart = URL.lastIndexOf('.')
// ermittle den letzten Teil des Dateinamens
var fileSuffix = URL.substring(suffixStart,xend)
/* Die folgenden Zeilen sind ein Workaround fuer die Implementierung von JavaScript Opera 3.0, die alle Elemente eines Strings als Stringwerte behandelt und deshalb keine korrekten Berechnungen mit ihnen vornehmen kann; um das zu umgehen, erstelle ich neue Variablen mit numerischen Werten, die den Werten von digitOne und digitTwo entsprechen. */
var dig1 = null
var dig2 = null
dig1=parseInt(digitOne)
dig2=parseInt(digitTwo)
function previousFile()
// diese Funktion bildet den Link zur vorhergehenden Datei der Serie
{
if (dig2 == 0)
/* wenn die aktuelle Datei die Nummer x0 hat,
dann setze die Nummer der vorherigen Seite auf (x-1)9 */
{
dig2 = 9
dig1--
}
else
{
dig2--
}
previousFileName = filePrefix + dig1 + dig2 + fileSuffix
/* bilde den Dateinamen, indem der erste und letzte Teil
mit den zwei Zahlen der Dateinummer kombiniert wird */
location.href = previousFileName
// setzte die 'location' auf die vorherige Datei
}
function nextFile()
// diese Funktion bildet den Link zur naechsten Datei der Serie
{
if (dig2 == 9)
/* wenn die aktuelle Datei die Nummer x9 hat,
dann setze die Nummer der naechsten Seite auf (x+1)0 */
{
dig2 = 0
dig1++
}
else
{
dig2++
}
nextFileName = filePrefix + dig1 + dig2 + fileSuffix
/* bilde den Dateinamen, indem der erste und letzte Teil
mit den zwei Zahlen der Dateinummer kombiniert wird */
location.href = nextFileName
// setzte die 'location' auf die naechste Datei
}
|
Quelle: hsguide.com/guides/javascript/js_026.html 
© 1999