navigieren durch anzahl von html seiten..

Atti

Erfahrenes Mitglied
hmm.. ich gebe es zu, das topic hat eine unbefriedigende aussagekraft :)

ok, das problem. wobei ich ehrlichgesagt keine ahnung habe wie sich das lösen lässt.

ich habe eine

start.html

und ein verzeichniss mit

20 html seiten (seite1.html, seite2.html.... seite20.html)



das sind die vorrausetzungen.

ich rufe die start.html auf und möchte über 2 buttons vor und zurücknavigieren bzw. sozusagen diese 20 html seiten aufrufen.

meinetwegen ich öffne start.html (php) und in einer tabelle wird der inhalt von z.b. seite1.html aufgerufen. dann drück man vor bzw zurück und ruft halt die einzelnen seiten der 20 vorhandenen auf.

ich hoffe man versteht das einigermassen. ich muss dazusagen, dass keine maus vorhanden ist, und zur navigation insgesamt 6 tastaturknöpfe benutzt werden können (spezialtastatur oder so)


das grösste problem ist allerdings. das die 20 seiten nicht mit irgendwelchen codes versehen werden können. diese werde sozusagen in dem verzeichnis täglich aktualisiert.


kurz: wie kann ich 20 html seiten aufrufen, sozusagen von seite1 nach 2 springen, bis seite 5 z.b. und dann von seite 5 zurück auf seite 4?

ich habe ehrlichgesagt keine ahnung, was man bzw welche sprache man benutzen sollte um dieses problem zu lösen.

weiss jemand einen tip?

wäre wirklich dankbar
 
Also zuallererst solltest du die Seiten in einem Frameset laden, so kannst du die Navigation in einer anderen Seite parken und hast nicht in den Zielseiten zu tun.

In den Head dieser Seite kommt:

Code:
<script type="text/javascript">
<!--
function SeqLink(direction)
        {
        counter = parent.frames[1].location.href.substr(4,2);
        if (counter.substr(0,1) == 0) counter = counter.substr(1,1);
             if (direction == forward && counter < 20) {
                  counter = counter + 1;
                  if (counter.length = 1) counter = "0" + counter;
                  parent.frames[1].location.href = "seite" + counter + ".html";
             }
             if (direction == backward && counter > 1) {
                  counter = counter - 1;
                  if (counter.length = 1) counter = "0" + counter;
                  parent.frames[1].location.href = "seite" + counter + ".html";
             }
        }
-->
</script>

Im HTML-Teil:
<a href="javascript:SeqLink('forward')">nächstes</a> und
<a href="javascript:SeqLink('backward')">voriges</a>

Die Idee ist folgende:
Ich gehe davon aus, daß in einem Zweierframeset im zweiten Frame (mit der Nummer 1, die Numerierung fängt bei 0 an) die Seiten seite01.html bis seite20.html geladen werden.
Das Script fragt die Seite im Frame2 ab, extrahiert den Teil mit der Nummer aus dem Seitennamen (04 aus seite04.html beispielsweise) addiert/subtrahiert 1 für vorwärts/rückwärtsbewegungen und läd die Seite mit der entsprechenden Nummer.
Das Script ist rein hypothetisch und nicht getestet, aber wenn du ein bißchen JavaScript kannst, solltest Du damit was anfangen können. Ich bin jetzt zu müde zum denken.

/Kapro

edit:
Ich sehe gerade du hast nichtmal ne Maus. Da werd ich mir morgen mal was für überlegen. Irgendwann hab ich schon mal eine Tastaturabfrage geschrieben...
 
Zuletzt bearbeitet:
einfach super. bin dir wirklich ausserordentlich dankbar. wegen der tastaturabfrage hab ich mir auch schon gedanken gemacht, aber .. naja. die 6 tasten können frei definiert werden. also meinetwegen von a-f. wird die problematik gelöst, zieh ich bei dir ein und koche ein jahr für dich :)
 
Tja, dann pack schon mal deinen Kram, denn hier kommt die getestete und funktionierende Version:

Code:
<script type="text/javascript">
<!--
if (navigator.appName.indexOf("Netscape") != -1)
        {
        window.captureEvents(Event.KEYPRESS);
        }
        document.onkeypress=KeyNavi;
        window.onkeypress=KeyNavi;
        function KeyNavi(evnt) {
                if (navigator.appName.indexOf("Netscape") != -1){
                        var keys = evnt.which;
                }
                else {var keys = window.event.keyCode;}
                if (keys == 98) {
                   SeqLink('forward');
                	  return false;
        	       }
                if (keys == 102) {
                	  SeqLink('back');
                	  return false;
        	       }
         return true;
        }
function SeqLink(direction)
        {
        var string = parent.frames[1].location.href.indexOf("seite");
        var number = parent.frames[1].location.href.substr(39,2);
        if (number == "01") counter = 1;
        if (number == "02") counter = 2;
        if (number == "03") counter = 3;
        if (number == "04") counter = 4;
        if (number == "05") counter = 5;
        if (number == "06") counter = 6;
        if (number == "07") counter = 7;
        if (number == "08") counter = 8;
        if (number == "09") counter = 9;
        if (number == "10") counter = 10;
        if (number == "11") counter = 11;
        if (number == "12") counter = 12;
        if (number == "13") counter = 13;
        if (number == "14") counter = 14;
        if (number == "15") counter = 15;
        if (number == "16") counter = 16;
        if (number == "17") counter = 17;
        if (number == "18") counter = 18;
        if (number == "19") counter = 19;
        if (number == "20") counter = 20;
	  if (direction == "forward") {
              counter = counter + 1;
              if (counter.length = 1) counter = "0" + counter;
              parent.frames[1].location.href = "seite" + counter + ".html";
              }
           if (direction == "back" && counter > 1) {
              counter = counter - 1;
              if (counter.length = 1) counter = "0" + counter;
              parent.frames[1].location.href = "seite" + counter + ".html";
              }
        }
-->
</script>

Du kannst jetzt mit den Tasten F wie forward und B wie back navigieren. Ich habs getestet, und mit dem Internet Exploder funktionierts. Der Netscape ist eine andere Geschichte...

/Kapro
 
Zurück