manusan: Die Zurück-funktion deaktivieren

Hallo Leute,

Folgendes Broblem:

Ich habe vor einigen Wochen angefangen mich mit HTML zu beschäftigen
und habe begonnen ein Quiz zu erstellen. Der Aufbau ist sehr komplex
und es gibt drei Joker. Die Joker sind Links zu anderen Seiten z.B.
../Frage1/Joker1.html .
Wenn der Joker verbraucht ist soll man ihn im Verlauf des weiteren
Spiels nicht mehr verwenden dürfen.
Also:

Frage1   Link zu Joker1-->neue Seite-->Joker1
Link zu Frage1(andere Datei mit abgeändertem Code,ohne Joker1)-->
Frage1ohneJoker1

Das Broblem ist, man kann einfach beim Browser zurück klicken und
hat die Information des Jokers und kann diesen immer wieder benutzen.
Ich will dieses Quiz nicht ins Internet stellen!!!

Meine Frage:
Wie ist es möglich per Code die Zurück-funktion des Browsers zu deaktivieren?
Wenn es nicht möglich ist, dann:
Wie kann ich ein neues Fenster mit einem Link öffnen und gleichzeitig das
Fenster im Hintergrund schließen.

Ich würde mich sehr über eine Antwort freuen.
Danke

  1. Привет,

    Folgendes Broblem:

    ^

    ROFL (SCNR)

    Ich habe vor einigen Wochen angefangen mich mit HTML zu beschäftigen
    und habe begonnen ein Quiz zu erstellen. Der Aufbau ist sehr komplex
    und es gibt drei Joker. Die Joker sind Links zu anderen Seiten z.B.
    ../Frage1/Joker1.html .
    Wenn der Joker verbraucht ist soll man ihn im Verlauf des weiteren
    Spiels nicht mehr verwenden dürfen.

    Und das machst du ausschließlich mit HTML? Viel Vergnügen! ;-)

    Also:

    Frage1   Link zu Joker1-->neue Seite-->Joker1
    Link zu Frage1(andere Datei mit abgeändertem Code,ohne Joker1)-->
    Frage1ohneJoker1

    Das Broblem

    ^
    ...

    ist, man kann einfach beim Browser zurück klicken und
    hat die Information des Jokers und kann diesen immer wieder benutzen.

    Tja. Diese nette Funktion haben Browser halt.

    Ich will dieses Quiz nicht ins Internet stellen!!!

    Ist ja schon gut!!!!2 ;-)

    Meine Frage:
    Wie ist es möglich per Code die Zurück-funktion des Browsers zu deaktivieren?

    Gar nicht.

    Wenn es nicht möglich ist, dann:
    Wie kann ich ein neues Fenster mit einem Link öffnen und gleichzeitig das
    Fenster im Hintergrund schließen.

    Verwende Javscript, insbesondere die Funktionen window.open() und window.close().

    До свидания!
    Sven aus Bonn

    --
    Do it yourSELF 'cause SELFmade is bestmade.
    Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
    Selfcode dekodieren - Selfcode-Info
    1. Hi Arx,

      Wenn der Joker verbraucht ist soll man ihn im Verlauf des weiteren Spiels nicht mehr verwenden dürfen.

      Ohne Programmiersprache geht das wohl nicht. Du müsstest den Link mit Java Script verschwinden lassen, damit kannst Du auch den Zurückbuttom entmachten, aber alles nicht wirklich zuverlässig.

      Meine Frage:
      Wie ist es möglich per Code die Zurück-funktion des Browsers zu deaktivieren?
      Gar nicht.

      Dochdoch, da gibt es schon einige ärgerliche Möglichkeiten. Noch nie erlebt?

      Verwende Javscript, insbesondere die Funktionen window.open() und window.close().

      Den Code musst Du allerdings geschickt auf die beiden Fenster verteilen.

      Viele Grüße
      Mathias Bigge

      1. Dochdoch, da gibt es schon einige ärgerliche Möglichkeiten. Noch nie erlebt?

        Nur interessehalber: Welche Möglichkeiten außer ein neues Fenster zu öffnen gibt es denn noch? Nicht, daß ich das machen will, aber es ist doch immer gut, Bescheid zu wissen ...

        Also nur mit HTML und Javascript, nach allem, was ich über ActivX gehört habe, kann man damit ja praktisch ein neues Betriebssystem installieren ;-)

        Grüße

        Heizer

        1. Hi Heizer,

          Nur interessehalber: Welche Möglichkeiten außer ein neues Fenster zu öffnen gibt es denn noch? Nicht, daß ich das machen will, aber es ist doch immer gut, Bescheid zu wissen ...

          Du kannst mit JS location.href überschreiben beim Laden einer Seite.

          Viele Grüße
          Mathias Bigge

          1. hi,

            Nur interessehalber: Welche Möglichkeiten außer ein neues Fenster zu öffnen gibt es denn noch? Nicht, daß ich das machen will, aber es ist doch immer gut, Bescheid zu wissen ...
            Du kannst mit JS location.href überschreiben beim Laden einer Seite.

            damit erzeugst du aber ebenfalls eine historie, in der ich mit einem zurück-button nach belieben navigieren kann.

            vermutlich meinst du eher location.replace().

            gruß,
            wahsaga

            --
            Rest in peace, Dimebag!
            #
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. Hi wahsaga,

              damit erzeugst du aber ebenfalls eine historie, in der ich mit einem zurück-button nach belieben navigieren kann.

              Nicht, wenn der User JS aktiviert hat, und ich sie bei jedem Neuladen überschreibe.

              vermutlich meinst du eher location.replace().

              Damit wird die Browserhistorie meines rachtens gerade nicht überschrieben.

              Viele Grüße
              Mathias Bigge

              1. hi,

                vermutlich meinst du eher location.replace().
                Damit wird die Browserhistorie meines rachtens gerade nicht überschrieben.

                da erachten selfhtml und meine wenigkeit aber entgegengesetzt zu deiner: http://de.selfhtml.org/javascript/objekte/location.htm#replace

                replace()
                Lädt einen anderen URI über den aktuellen Eintrag in der Liste der besuchten Seiten (History). Hat dadurch einen ähnlichen Effekt wie die Eigenschaft  href. Der Unterschied ist, dass der aktuelle URI anschließend in der Liste der besuchten Seiten nicht mehr vorkommt.

                gruß,
                wahsaga

                --
                Rest in peace, Dimebag!
                #
                "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                1. Hi wahsaga,

                  vermutlich meinst du eher location.replace().
                  Damit wird die Browserhistorie meines rachtens gerade nicht überschrieben.
                  da erachten selfhtml und meine wenigkeit aber entgegengesetzt zu deiner:

                  Das verstehst Du falsch. Überschrieben wird die aktuelle URL, die dann aber nicht in die history wandert, was aber bei location.href passiert, so dass man per Zurückbutton wieder auf die gleiche Seite kommt, wo dann wieder überschrieben wird usw.

                  Viele Grüße
                  Mathias Bigge

                  1. hi,

                    Das verstehst Du falsch. Überschrieben wird die aktuelle URL, die dann aber nicht in die history wandert,

                    ja eben - und ging es bei der fragestellung dieses threads nicht um genau sowas?
                    eine neue seite so "aufrufen", dass man per zurück nicht mehr auf die (dann) vorherige kommt.

                    was aber bei location.href passiert, so dass man per Zurückbutton wieder auf die gleiche Seite kommt, wo dann wieder überschrieben wird usw.

                    ja, unbestritten.

                    habe den eindruck, dass wir beide das gleiche meinen, aber irgendwie aneinander vorbei reden :-)

                    gruß,
                    wahsaga

                    --
                    Rest in peace, Dimebag!
                    #
                    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                    1. Hi wahsaga,

                      habe den eindruck, dass wir beide das gleiche meinen, aber irgendwie aneinander vorbei reden :-)

                      Könnte sein. Den Unterschied kann man ganz gut sehen, wenn man das Frame-Kontrollscript ansieht, das in einem der Feature-Artikel dargestellt wird. Da kommt man aufgrund des überschriebenen location.href nicht mehr mit dem Backbutton aus dem Frameset heraus auf die Seiten, die in der Browser History davor liegen, mit nem location.replace wäre es aber noch möglich.

                      Viele Grüße
                      Mathias Bigge

      2. Hi,

        Wenn der Joker verbraucht ist soll man ihn im Verlauf des weiteren Spiels nicht mehr verwenden dürfen.
        Ohne Programmiersprache geht das wohl nicht. Du müsstest den Link mit Java Script verschwinden lassen, damit kannst Du auch den Zurückbuttom entmachten, aber alles nicht wirklich zuverlässig.

        Richtig - der User kann den Link ja auch in einem neuen Fenster öffnen lassen (dann hilft es wenig, wenn der Link nachher nicht mehr vorhanden ist) oder sich die Joker-Seite ausdrucken oder lokal speichern oder ...

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Um ehlich zu sein blick ich da nicht so ganz durch.
    Wie soll ich denn den open() und close() Befehl gleichzeitig benutzen?
    Es wäre nett wenn mir jemand den Code speziell für diese Situation zeigen könnte.

    Vielen Dank für die Mühe.

  3. Hi manusan,

    Ich habe vor einigen Wochen angefangen mich mit HTML zu beschäftigen
    und habe begonnen ein Quiz zu erstellen. Der Aufbau ist sehr komplex
    und es gibt drei Joker. Die Joker sind Links zu anderen Seiten z.B.
    ../Frage1/Joker1.html .

    Bist du noch gar nicht auf die Idee gekommen, dass ich (mögl. in einem anderen Browserfenster) einfach die Adresse www.deinedomain.de/quiz/frage1/joker1.html manuel eingeben könnte?

    Genauso könnte ich auch von Hand /frage2/joker1.html, /frage3/joker1.html usw. eingeben.

    Eine gute[tm] Lösung für dieses Problem kann es mit Javsscript nicht geben, da würde ich schon eher zu einer serverseitigen Scriptsprache in Verbindung mit einer Session tendieren, in der du abspeicherst, welche Joker schon verwendet wurden.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
    Zufällige Hinweise:
    ------------------------
    Wer die FAQ gelesen hat, ist klüger!
    ... und weiß wie man Links macht ;-)
    1. Hallo Dennis,

      Eine gute[tm] Lösung für dieses Problem kann es mit Javsscript nicht geben, da würde ich schon eher zu einer serverseitigen Scriptsprache in Verbindung mit einer Session tendieren, in der du abspeicherst, welche Joker schon verwendet wurden.

      Sehr interessant, aber ich verstehe kein Wort.
      Hat diese Serverseitige Scriptsprache überhaupt noch etwas mit HTML zu tun?

      Wenn ja wäre ich über eine genauere Beschreibung sehr dankbar.
      Wenn nicht, geht es weit an meinem Lernziel vorbei.

      Danke, manusan.

      1. Hi manusan,

        Eine gute[tm] Lösung für dieses Problem kann es mit Javsscript nicht geben, da würde ich schon eher zu einer serverseitigen Scriptsprache in Verbindung mit einer Session tendieren, in der du abspeicherst, welche Joker schon verwendet wurden.

        Sehr interessant, aber ich verstehe kein Wort.
        Hat diese Serverseitige Scriptsprache überhaupt noch etwas mit HTML zu tun?

        Nein, hat es nicht, denn HTML ist ja auch keine Script- bzw. Programmiersprache.

        Wenn ja wäre ich über eine genauere Beschreibung sehr dankbar.
        Wenn nicht, geht es weit an meinem Lernziel vorbei.

        Nun, über kurz oder lang wirst du dich, wenn du dich weiter mit so Sachen beschäftigst an einer serversetigen Scriptsprache deiner Wahl nicht vorbeikommen ;-)

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
        Zufällige Hinweise:
        ------------------------
        Sinnvolles Zitieren: Man zitiert nur Teilsätze des Vorposters
        auf die man sich bezieht! Nicht einfach alles.
  4. Hi Leute,

    Ich habe die Lösung:
    Datei1 zu Datei2

    Datei1: normaler Link mit _blank zu Datei2(fullscreen)
    (muss im fullscreen-modus sein)
    Datei2:(fullscreen) Java:
    opener.close()

    Weil durch blank und fullscreen keine history entstehen kann, stellt der Browser die Frage, ob man das Fenster wirklich schließen will, nicht!!!

    Danke für eure Mühe.

    manusan

    1. Hi manusan,

      Datei1: normaler Link mit _blank zu Datei2(fullscreen)

      das wird möglicherweise nicht in jedem Browser wie gewünscht funktionieren....

      (muss im fullscreen-modus sein)

      warum?

      Datei2:(fullscreen) Java:

      Du sprichst von Javascript, das ist was _ganz_ anderes als Java!!

      opener.close()

      Weil durch blank und fullscreen keine history entstehen kann, stellt der Browser die Frage, ob man das Fenster wirklich schließen will, nicht!!!

      Ich wüsste nicht, was fullscreen mit History zu tun hat (du kannst dich im Fullscreen Modus übrigens über die Tastaturkürzel i.d.R. immer noch vor und zurück bewegen).

      Verstehe ich das richtig, dass du jetzt immer bei einem Link auf eine neue Seite diese ganze Prozedur durchmachen willst?

      Mal noch was anderes nebenbei:
      Was ist mit Usern, die Javascript deaktiviert haben?

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
      Zufällige Hinweise:
      ------------------------
      Newbies aufgepasst: Auf viele Fragen findet man eine
      Antwort im Archiv, das man auch durchsuchen kann
      1. Hmm...

        Interassante Sachen die du da schreibst.
        Ich habe nicht vor dieses Spiel ins Internet zu setzen und die Sicherheit ist mir deshalb auch nicht so wichtig.

        Es stimmt schon, es ist sehr komplex.
        Es werden um die 1000 Dateien werden. Es sind schon 600.

        Warum ich das mache?

        Ich habe spass dran.

        manusan

  5. Für die die es interessiert, mein Code:

    1.

    <html>
    <head>
    <title>Wer wird Millionär</title>
     <script type="text/javascript">
    <!--
    window.open("Data/Spiel 1/start.html","Fenster1",fullscreen="yes");

    //-->
    </script>

    </head>
     <body onLoad="window.resizeTo(200,200)">
    <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
    Spiel begonnen!
    </body>
    </html>

    2.

    <html>
    <head>
    <title>start</title>
     <script type="text/javascript">
    <!--
    window.open("starter.html","Fenster1",fullscreen="yes");

    //-->
    </script>

    </head>
     <body onLoad="window.resizeTo(200,200)">
    <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
    Spiel begonnen!
    </body>
    </html>

    3.

    <html>
    <head>
    <style type="text/css">
    <!--
     a:link { text-decoration:none; font-weight:bold; color:#E00000; }
     a:visited { text-decoration:none; font-weight:bold; color:#800000; }
    -->
     </style>
    <title>starter</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body onLoad="window.resizeTo(1024,768),self.moveTo(0,0)">
    <body bgcolor="#FFFFFF" text="#000000"oncontextmenu="return false;">
    <font size=9>

    <text>
    <b>
    <i>
    <p align=center>
    <br><br><br>
    Herzlich
    <br>
    Willkommen bei
    <br>
    <font face="Comic Sans MS">

    <br>
    WER WIRD MILLIONÄR
    </b>
    </i>

    </text>

    <br>
    <A HREF = "Start/start.html"> START </A>

    </body>
    </html>

    4.

    <HTML>
    <HEAD>
    <style type="text/css">
    <!--
     a:link { text-decoration:none; font-weight:bold; color:#E00000; }
     a:visited { text-decoration:none; font-weight:bold; color:#800000; }
     a:hover { text-decoration:none; font-weight:bold; background:#600007; }
     a:active { text-decoration:none; font-weight:bold; background-color:#5000A0; }
    -->
    </style>

    <TITLE>start</TITLE>

    <BODY text=#000000 bgColor=#ffffff
    background="../../Images/Wer wird Millionär Hintergrund hell 1024 x 768.jpg">
     <body onLoad="window.resizeTo(1024,768)">
    <bgsound src="../../Audio/wwm-introduktion.mp3" loop="" balance="50" volume="100" delay="0">

    <FONT size="7">
    <P align=center>
    <BR><BR><BR><BR>
    <A href="../Stufen/normal/Stufen auf 50.html">&nbsp; Spielen &nbsp;</A>
    <BR><BR><BR><BR>
    <A href="Ende.html">&nbsp; Ende &nbsp;</A>
    <BR><BR><BR><BR>
    <P align=left><A href="../../../Wer wird Millionär.html"><font color="#9F00FF"><font size="3">&nbsp;zurück&nbsp;</A></P>
    </FONT>
    </BODY>
    </HTML>

    1. Hi manusan,

      <title>Wer wird Millionär</title>

      Pass auf, dass du damit keine rechtlichen Probleme kriegst!

      window.open("Data/Spiel 1/start.html","Fenster1",fullscreen="yes");

      ^^^^                       ^^^^^^^^^^^^^^^^

      Arbeitest du auf einem Windows System? Denn sonst wäre ein Leerzeichen im Ordnernamen wohl unzulässig, nenn das lieber Spiel_1 (bei Nicht-Windows ist auch Groß-/Kleinschreibung wichtig!)

      achso, und das am Ende da, müsste das nicht eher "fullscreen=yes" heißen? Hast du das mal in einem anderen Browser als dem IE gestestet?

      <body onLoad="window.resizeTo(200,200)">
      <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

      Wie stellst du dir das vor, zweimal body beginnen zu lassen? Hat dir das irgenein WYSIWYG-Editor produziert?

      Außerdem wäre es besser, wenn du CSS verwenden würdest.

      window.open("starter.html","Fenster1",fullscreen="yes");

      <body onLoad="window.resizeTo(200,200)">
      <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

      s.o.

      <body onLoad="window.resizeTo(1024,768),self.moveTo(0,0)">
      <body bgcolor="#FFFFFF" text="#000000"oncontextmenu="return false;">

      Da sollte noch ein Leerzeichen vor oncontextmenu rein - wobei ich mich grade frage, obs das überhaupt gibt....

      Zu dem Rest auf der 3. Seite (und 4.) sag ich jetzt mal nichts, da verwendest du mißbilligte Elemente, kein CSS etc.

      <HTML>

      Da seh ich grad noch, auf deinen Seiten fehlt oben der DOCTYPE.

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
      Zufällige Hinweise:
      ------------------------
      Sinnvolles Zitieren: Man zitiert nur Teilsätze des Vorposters
      auf die man sich bezieht! Nicht einfach alles.