Yadgar: Problem mit dynamischer Navigationsleiste in Frameset

High!

Also, das Problem ist folgendes: Beim Klicken auf eine der Zeilen im Inhaltsverzeichnis wird die entsprechende Textseite mit ihrem Frameset (oben Text, unten Navigationsleiste) geladen.

Die Dateinamen der Textseiten sind von 1 bis 17 durchnummeriert, nach dem Schema ArtikelNN.html, NN ist eine zweistellige Zahl, bei einstelliger Textnummer mit führender Null.

Da ich die Navigationsleiste dynamisch gestalten will, enthält sie ein Script, das nach dem Laden automatisch ausgeführt wird.

In diesem Script wird die Nummer der Textseite aus ihrem Dateinamen ausgelesen, um 1 vermindert und in den Dateinamen im Link für das "Zurück"-Navigationselement eingefügt (für das "Vorwärts"-Navigationselement wird die Nummer natürlich um 1 erhöht).

Das Problem ist jetzt, dass der Link natürlich nur beim erstmaligen Laden das Framesets neu gesetzt wird, sobald ich von der ersten geladenen Textseite zur nächsten (oder vorigen) Seite "geblättert" habe, wird der Link nicht mehr aktualisiert - was ja auch logisch ist, da im Gegensatz zum Textframe die Navigationsleiste nicht neu geladen wird.

Folglich müßte ich das ganze Frameset neu laden... an sich sollte es mit der gleichen Methode funktionieren, die ich auch für die Inhaltsverzeichnis-Seite verwendet habe, nämlich mit einem ?-Anhang am Dateinamen, der vom Frameset dann mit top.document.location.seach ausgewertet wird...

Aber mit dem Script

function pageback()
{
  var u=top.frames[0].document.location.href;
  var cut=u.lastIndexOf("/");
  var file=u.substr(cut+1);
  var rawnumber=file.slice(19,21);
  var number=parseInt(rawnumber, 10);
  var dest="ente2005-10_frames.html?";
  if (number < 10) dest += "0";
  dest_back = dest + (number-1);
  alert(dest_back);
  document.write("<a href='"+dest_back+"' target='_top'><img src='arrowani-left00.gif' width='90' height='75' border='0'></a>");

}

bekomme ich für dest_back nach dem ersten Aufruf vom Inhaltsverzeichnis aus immer nur ente2005-10_frames.htmlNaN! Wieso? Muss ich (number-1) explizit in einen String umwandeln? Selbst das funktioniert nicht, wie ich zwischenzeitlich feststellen musste...

Bis bald im Khyberspace - http://home.arcor.de/yadgar/index-d.html
Afghanistan-Chronik: http://home.arcor.de/yadgar/

Yadgar

  1. Also, das Problem ist folgendes:

    Nein, Yadgar, die Probleme sind folgende:

    (1) Du verwendest Frames trotz ihrer Nachteile: http://www.subotnik.net/html/frames.html

    (2) Du verwendest JavaScript zu Navigationszwecken, ohne zu wissen und beeinflussen zu können, ob das beim Nutzer ausgeführt wird. Für viele Nutzer (u.a. Agenten!) sind deine Seite so völlig unbrauchbar.

    Du musst eine serverseitige Technik (wie PHP) einsetzen. Dann kannst du auch wiederkehrende Teile aus einer Datei auf jede Seite bringen – ohne Frames.

    Live long and prosper,
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
    1. High!

      (1) Du verwendest Frames trotz ihrer Nachteile: http://www.subotnik.net/html/frames.html

      Ich habe Frames bis jetzt auch vermieden, indem ich die Navigationselemente als <div>s mit position:fixed definierte... die dynamische Navigation klappte damit unter Netscape prima, aber: IE unterstützt ausgerechnet position:fixed nicht, und die einschlägigen Workarounds haben bei mir auch nie funktioniert, bzw. ich habe sie nie verstanden und konnte sie deswegen auch nicht auf mein Problem passend umprogrammieren!

      (2) Du verwendest JavaScript zu Navigationszwecken, ohne zu wissen und beeinflussen zu können, ob das beim Nutzer ausgeführt wird. Für viele Nutzer (u.a. Agenten!) sind deine Seite so völlig unbrauchbar.

      Bis auf weiteres sollen die Seiten nur in einem lokalen Intranet verfügbar sein, da stellt sich das Problem mit den Agenten nicht.

      Du musst eine serverseitige Technik (wie PHP) einsetzen. Dann kannst du auch wiederkehrende Teile aus einer Datei auf jede Seite bringen – ohne Frames.

      PHP - vielleicht irgendwann später mal, im Moment habe ich alle Hände voll zu tun, mir erst einmal Javascript beizubringen!

      Bis bald im Khyberspace!

      Yadgar

      1. indem ich die Navigationselemente als <div>s

        Yadgar,
        Warum div? Es sind doch sicher Navigations_listen_, oder? Also

        <ul id="navigation">  
          <li><a href="foo">foo</a></li>  
          <li><a href="bar">bar</a></li>  
        </ul>
        

        mit position:fixed definierte...

        Was dann problematisch wird, wenn die Box nicht komplett ins Browserfenster passt. Der Nutzer hat keine Chance, an die verborgenen Inhalte zu gelangen.

        Warum ist es wichtig, dass die Box nicht mit dem restlichen Inhalt mitscrollt?

        Bis auf weiteres sollen die Seiten nur in einem lokalen Intranet verfügbar sein, da stellt sich das Problem mit den Agenten nicht.

        Warum sagste das nicht gleich?

        „Geben Sie besondere Umgebungsbedingungen wie Browser und Betriebssystem etc. bekannt. Für ein Intranet gelten z.B. andere Maßstäbe als für im World Wide Web veröffentlichte Seiten.“ [Charta]

        Live long and prosper,
        Gunnar

        --
        „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)