Robert: Zweiten Teil einer Seite erst nach "confirm" anzeigen

Hallo,

Ich möchte daß von einer HTML-Seite zunächst nur der obere Teil
bis zu einer bestimmten Stelle angezeigt wird. Dann soll ein
Confirm-fenster kommen, das fragt, ob auch der Rest angezeigt
werden soll. Das entsprechende Script habe ich zwischen die
beiden HTML-Teile eingebaut.

Bis zum Confirm-Fenster klappt das auch prima. (Es wird bis
dahin nur der obere Teil angezeigt.) Aber wie bekomme ich's
hin, daß danach im Fall von (variable==false) der Rest nicht
angezeigt oder ein definierter Teil übersprungen wird?

Ich hab's versucht mit: if(variable==false) stop();
aber das bringt ja nichts, weil die ganze HTML-Seite ja
schon geladen ist. Auch mit history.back komm ich
nicht weiter, weil der obere Teil ja bleiben soll.

Eine Möglichkeit wäre nun zwar, daß ich den ganzen
restliche HTML-Teil im Fall von (variable==true) mit
document.write übergebe, aber ich weiß nicht, ob man
das so machen kann (oder sollte), weil das halt sehr viel
ist, was da dann drinstehen müßte, und wenn das Script
mit irgendeinem Browser nicht läuft, oder der User
Javascript deaktiviert hat, dann könnte der zweite
Teil der Seite überhaupt nicht angezeigt werden.

Weiß jemand eine bessere Lösung?

Bye,  Robert

  1. Aloha!

    Ich möchte daß von einer HTML-Seite zunächst nur der obere Teil
    bis zu einer bestimmten Stelle angezeigt wird. Dann soll ein
    Confirm-fenster kommen, das fragt, ob auch der Rest angezeigt
    werden soll. Das entsprechende Script habe ich zwischen die
    beiden HTML-Teile eingebaut.

    Warum denn dieses? HTML-Seiten werden in der Regel als Ganzes angezeigt. Du willst also irgendwas spezielles machen - was?

    Eine Möglichkeit wäre nun zwar, daß ich den ganzen
    restliche HTML-Teil im Fall von (variable==true) mit
    document.write übergebe, aber ich weiß nicht, ob man
    das so machen kann (oder sollte), weil das halt sehr viel
    ist, was da dann drinstehen müßte, und wenn das Script
    mit irgendeinem Browser nicht läuft, oder der User
    Javascript deaktiviert hat, dann könnte der zweite
    Teil der Seite überhaupt nicht angezeigt werden.

    Eine Lösung mit einer Seite:
    Packe den zweiten Teil in ein
    <div id="teilzwei" style="visibility:hidden">
    [...zweiter Teil...]
    </div>

    und <body onload="if (confirm('Teil zwei zeigen?')) {document.getElementById("teilzwei").style.visibility='visible';}">

    Alle Lösungen, die auch ohne Javascript funktionieren sollen, müssen mit zwei Seiten arbeiten, also z.B. mit IFrames oder Frames - oder ganz stumpf mit Seite1 (ohne Teil 2) und Seite2 (mit Teil 2) und einem billigen Link.

    - Sven Rautenberg

    1. Hallo,

      Warum denn dieses? HTML-Seiten werden in der Regel als Ganzes angezeigt. Du willst also irgendwas spezielles machen - was?

      Ja, es geht um ein Rätsel, und es soll nochmal
      nachgefragt werden, ob der User die Lösung wirklich
      schon sehen möchte.

      Eine Lösung mit einer Seite:
      Packe den zweiten Teil in ein
      <div id="teilzwei" style="visibility:hidden">
      [...zweiter Teil...]
      </div>

      und <body onload="if (confirm('Teil zwei zeigen?')) {document.getElementById("teilzwei").style.visibility='visible';}">

      Danke funktioniert prima. :-)

      Alle Lösungen, die auch ohne Javascript funktionieren sollen, müssen mit zwei Seiten arbeiten, also z.B. mit IFrames oder Frames - oder ganz stumpf mit Seite1 (ohne Teil 2) und Seite2 (mit Teil 2) und einem billigen Link.

      Ich hab's jetzt nochmal etwas abgeändert.
      So müßte es auch mit einer Seite gehen, und
      der zweite Teil auch angezeigt werden, wenn
      Javascript nicht geht:

      Erster HTML-Teil
      <div id="teilzwei">
      <script language="JavaScript">
      <!--
      L=confirm('Lösung wirklich schon anzeigen?');
      if (L==false) document.getElementById("teilzwei").style.display="none";
      //-->
      </script>
      Zweiter HTML-Teil
      </div>

      Statt visibility hab' ich jetzt display
      verwendet, weil so im Fall der Nichtanzeige
      auch kein Platz freigehalten wird.

      Netscape spuckt allerdings eine Fehlermeldung aus:
      "document.getElementById is not a function."

      Bye,  Robert