[JavaScript] Frame reload + string replace über JS?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Frame reload + string replace über JS?

    Hallo!

    Habe mit JS kaum erfahrung und würde gerne folgendes lösen:

    In einem Frameset gibt es einen Inhalts und einen Menü Frame,
    im Menü Frame kann man über einen Link die Sprache des menüs wechseln, der link lädt die menü seite neu und ändert eine PHP Variable "$lang".

    Nun möchte ich aber, dass beim klicken dieses links auch der inhaltsframe neu geladen wird und die sprache ändert...

    prinzipell stelle ich mir das wie folgt vor:

    beim klicken des links aktiviere ich ein Javascript, welches sich die momentan im inhalts-frame angezeigte url holt, einen sting-replace durchführt ("_german" wird durch "_english" ersetzt) und die neue URL an das frame sendet..

    ist das mit JS möglich, wenn ja, wie in etwa sähe das script aus?

    vielen dank! gruß martin

  • #2
    Da du beide Seiten neu laden möchtest, wäre es doch sinniger, das Frameset komplett neu zu laden. Also angenommen, deine index.php stellt das Framesat dar, in deinem Menüframe ändert der User die Sprache, das Frameset lädt sich neu und dann versorgst du über die index.php das Frameset.
    Code:
    <script type="text/javascript">
      var url = window.top.location.href;
      if ( url.indexOf('_german') > 0 )
      {
        url = url.replace('_german', '_english');
        window.top.location.href = url;
      }
    
      if ( url.indexOf('_english') > 0 )
      {
         url = url.replace('_english', '_german');
         window.top.location.href = url;
      }
    </script>

    Kommentar


    • #3
      Ich hatte (der einfachheit halber) nicht erwähnt, dass das komplette frameset aus mehreren frames besteht als nur den 2..

      Daher möchte ich nicht das komplette frameset neu laden...

      habe versuch deinen code umzuschreiben, allerdings funktioniert es noch nicht.. woran könnte es liegen?

      die funktion wird nun im link per onclick aufgerufen, bewirkt aber nix..

      der name des inhalts-frames ist "middle"

      Code:
      function switchlang() {
        var url = parent.middle.location.href;
        if ( url.indexOf('_german') > 0 )
        {
          url = url.replace('_german', '_english');
          parent.middle.location.href = url;
        }
      
        if ( url.indexOf('_english') > 0 )
        {
           url = url.replace('_english', '_german');
           parent.middle.location.href = url;
        }
      };
      EDIT: ich korrigiere.. es funktioniert nur teilweise.. komischerweise vom englischen ins deutsche, umgekehrt aber nicht.. und wenn dann immer nur einfach.. also von englisch nach deutsch funktioniert es, dann aber wieder nach englisch bewrikt nix..
      Zuletzt geändert von mch2k; 12.03.2006, 14:06.

      Kommentar


      • #4
        PROBLEM GELÖST

        Hey!


        Habe das Script nocheinmal umgeschrieben.
        und gebe beim aufrufen des scriptes nun an von welcher sprache in welche gewechselt werden soll..

        nun funktioniert alles so wie es soll!

        DANKESCHÖN FÜR DEINE HILFE, reallife!

        Code:
        function switchlang(from,to) {
          var url = parent.middle.location.href;
          if ( url.indexOf(from) > 0 )
          {
            url = url.replace(from, to);
            parent.middle.location.href = url;
          }
        };

        Kommentar


        • #5
          Original geschrieben von mch2k
          es funktioniert nur teilweise.. komischerweise vom englischen ins deutsche, umgekehrt aber nicht..
          Daran ist nix komisch, das ist ganz normal, wenn man zwei genau das gegenteilige bewirkende IFs hintereinander macht ...

          Ein else if wäre da wohl angebrachter gewesen.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar

          Lädt...
          X