stuck: if-bedingter Seitenaufruf funzt net

Hi,
ich habe mit so nem script versucht, eine Abfrage zu machen, welche Seite gerade in frame [1] geladen ist.
Dann soll eine dazu passende neue seite geladen werdne. Also wenn dort die seite 1 geladen ist, soll seite 1a geladen werdne, bei seite 2, halt dann 2a usw.
Das habe ich so versucht:

<script type="text/javascript">
<!--
function Abfrage() {
  if(parent.frames[1].location.href ="Frage1.htm") {
   parent.frames[1].location.href ="5050Frage1.htm";
  }
}
// -->
</script>

was muss ich aendern, dass es funktioniert. Denn wenn ich was anderes ausfuehren will, nur ein alert oder so, dann laedt er in dem fenster die Seite "Frage1.htm", obwohl er die ja nur ueberpruefen soll...

Gruss

Stuck

  1. ich habe mit so nem script versucht, eine Abfrage zu machen, welche Seite gerade in frame [1] geladen ist.

    <script type="text/javascript">
    <!--
    function Abfrage() {
      if(parent.frames[1].location.href ="Frage1.htm") {
       parent.frames[1].location.href ="5050Frage1.htm";

    was muss ich aendern, dass es funktioniert. Denn wenn ich was anderes ausfuehren will, nur ein alert oder so, dann laedt er in dem fenster die Seite "Frage1.htm", obwohl er die ja nur ueberpruefen soll...

    Ein einzelnes Gleichheitszeichen ist kein Vergleich, sondern eine Zuweisung. Du weist also in Deiner if-Abfrage location.href die Adresse "Frage1.htm" zu.
    Im obigen Code merkst Du das nicht, weil location.href anschließend sofort auf "5050Frage1.htm" gesetzt wird. Wenn Du diese (zweite) Zuweisung durch ein alert() oder sonstiges ersetzt, bleibt "Frage1.htm" natürlich bestehen.

    Möchtest Du nur einen Vergleich ausführen, benutze die Vergleichsoperatoren aus <selfhtml.teamone.de/javascript/sprache/operatoren.htm#vergleich>.

    Gruß,
      soenk.e

    PS: Die Dateinamen sollte man grundsätzlich klein schreiben. Unter Windows macht das zwar keinen Unterschied, aber da die meisten Server unter Unix laufen und Unix zwischen Groß- und Kleinschreibung unterscheidet, kann man sich mit gemischter Schreibweise nervige Stolperfallen einbauen.

    1. ich habe mit so nem script versucht, eine Abfrage zu machen, welche Seite gerade in frame [1] geladen ist.

      <script type="text/javascript">
      <!--
      function Abfrage() {
        if(parent.frames[1].location.href ="Frage1.htm") {
         parent.frames[1].location.href ="5050Frage1.htm";

      was muss ich aendern, dass es funktioniert. Denn wenn ich was anderes ausfuehren will, nur ein alert oder so, dann laedt er in dem fenster die Seite "Frage1.htm", obwohl er die ja nur ueberpruefen soll...

      Ein einzelnes Gleichheitszeichen ist kein Vergleich, sondern eine Zuweisung. Du weist also in Deiner if-Abfrage location.href die Adresse "Frage1.htm" zu.
      Im obigen Code merkst Du das nicht, weil location.href anschließend sofort auf "5050Frage1.htm" gesetzt wird. Wenn Du diese (zweite) Zuweisung durch ein alert() oder sonstiges ersetzt, bleibt "Frage1.htm" natürlich bestehen.

      Möchtest Du nur einen Vergleich ausführen, benutze die Vergleichsoperatoren aus <selfhtml.teamone.de/javascript/sprache/operatoren.htm#vergleich>.

      Gruß,
        soenk.e

      PS: Die Dateinamen sollte man grundsätzlich klein schreiben. Unter Windows macht das zwar keinen Unterschied, aber da die meisten Server unter Unix laufen und Unix zwischen Groß- und Kleinschreibung unterscheidet, kann man sich mit gemischter Schreibweise nervige Stolperfallen einbauen.

      Das mit den Namen regelt sich, da ich die seite net auf nen server lade. soll n programm sein ,das lokal ist, sonst nix ;-)
      Aber ich hab das auch schon mit == versucht, klappt auch net. wenn ich != mache, fuehrt er auch dann aus, wenn die seite geladen ist, obwohl er ja gerade dann net laden soll, und wenn ich == mache, macht er gar nix....

      ich kapier echt net, warum das net funzt. hab im selfhtml unter if-bedinung gelesen, unter vergleich, und und und, aber ich find den fehler net....

      1. <script type="text/javascript">
        <!--
        function Abfrage() {
          if(parent.frames[1].location.href ="Frage1.htm") {
           parent.frames[1].location.href ="5050Frage1.htm";

        Aber ich hab das auch schon mit == versucht, klappt auch net.

        Du hast sicher auch geprüft, daß location.href der gewünschten Adresse entspricht? Tipp: Gib mal

        javascript:alert(location.href);

        in die Adressleiste des Browsers ein, wahrscheinlich entspricht das Format nicht dem, was Du erwartet hast.

        Gruß,
          soenk.e

        1. <script type="text/javascript">
          <!--
          function Abfrage() {
            if(parent.frames[1].location.href ="Frage1.htm") {
             parent.frames[1].location.href ="5050Frage1.htm";

          Aber ich hab das auch schon mit == versucht, klappt auch net.

          Du hast sicher auch geprüft, daß location.href der gewünschten Adresse entspricht? Tipp: Gib mal

          javascript:alert(location.href);

          in die Adressleiste des Browsers ein, wahrscheinlich entspricht das Format nicht dem, was Du erwartet hast.

          Gruß,
            soenk.e

          Wenn ich das mache, kommt nur der alert mit der location als Index.html

          Aber in dieser Datei sind zwei frames ([0] und [1]).
          Im Frame [1] ist die Datei Frage1.htm geladen. Im Frame [0] ist die Datei Joker geladen. WEnn jetzt das script in der Datei Joker ist, muss es doch funktionieren, wenn ich die Abfrage so gestalte, dass eben Frage1.htm in Frame [1] sein soll, oder etwa nicht? also parent.frames[1].location.href =="Frage1.htm"

          Was is denn daran noch falsch?

          Gruss

          Stuck

          1. if(parent.frames[1].location.href ="Frage1.htm") {
               parent.frames[1].location.href ="5050Frage1.htm";

            Aber ich hab das auch schon mit == versucht, klappt auch net.

            Du hast sicher auch geprüft, daß location.href der gewünschten Adresse entspricht? Tipp: Gib mal

            javascript:alert(location.href);

            Wenn ich das mache, kommt nur der alert mit der location als Index.html

            Tja, wenn ich das mache, kommt ein kleines Fenster mit "http://forum.de.selfhtml.org/?m=123523&t=22199", _nicht_ "?m=123523&t=22199". Von daher vermute ich einfach mal weiterhin, daß in Deiner parent.frames[1].location.href nicht "Frage1.htm" steht, sondern etwas in der Richtung "file://c:\html\blabla\Frage1.htm" - und darauf wirst Du dann auch entsprechend mit substring() o.ä. reagieren müssen.

            Gruß,
              soenk.e