garf: document.location.href mit relativem Pfad - funzt nicht

Hallo ...

ich möchte gerne von einer HTML Datei eine Version in einer anderen Sprache öffnen ... die deutschen Dateien liegen im Verzeichnis ../de/ die englischen z.B. im Verzeichnis ../en/ ...
die jeweiligen Dateien haben den selben Dateinamen ... und da habe ich mir gedacht, dass der Button zum wechseln der Sprache praktischerweise automatisch auf die entsprechende Seite verlinken kann

dummerweise zeigt sich dabei ein ganz merkwürdigen Verhalten:

man steigt auf einer Deutschen Seite ein:
wenn man auf Englisch drückt > kommt die Englische Version
drückt man dann wieder auf Deutsch > kommt wieder die Englische Version
drückt man dann nochmal auf Deutsch > kommt die Deutsche Version
drückt man wieder auf Englisch > kommt die Englische Version
u.s.w.

wenn man zuerst auf bei Englisch einsteigt ist das verhalten genau umgekehrt ... da muss man dann 2x auf Englisch drücken, um auf die Englischen Seiten zu kommen

Offline Funktioniert der Spass gar nicht

Hier das Skript dazu:

function spracheWechseln(Sprache){  
	  
	var strFilename;  
	var strHref = document.location.href;  
  
	strHref = strHref.replace(/\//g,"\\");  
  
	var iIdx = strHref.lastIndexOf("\\");  
	  
	if (-1<iIdx) {  
		strFilename = strHref.substring(iIdx+1);  
	} else {  
		strFilename = strHref;  
	}  
  
	var Ziel;  
	Ziel = "../"+Sprache+"/"+strFilename;  
	  
	document.location.href=Ziel;  
  
}

und:

  
<a href="#" onclick="spracheWechseln('de')">Deutsch</a>  
<a href="#" onclick="spracheWechseln('en')">Englisch</a>  
			
  1. Hi,

    Hier das Skript dazu:

    Und wo deine Ausführungen dazu, was deine Debugmaßnahmen ergeben haben?

    var strHref = document.location.href;
    strHref = strHref.replace(///g,"\");
    var iIdx = strHref.lastIndexOf("\");

    Warum ersetzt du / erst durch , um dann nach \ zu suchen?

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. ich erstze / durch , damit ich dann nur noch \ habe ... unabhängig, ob ich  / oder \ geliefert bekommen ... damit bekomme ich dann nur den Namen der aktuellen Datei ohne Pfad ... der Pfad wird dann ja neu dazugebastelt ... und ich vermute den Fehler in der Pfadangabe ...

      wenn ich das hier mache:

      alert("-"+Ziel+"-");
      document.location.href=Ziel;

      bekommen ich bei beiden Versuchen das selbe Ziel angezeigt ... in der Adresszeile wir die richtige Adresse auch (ganz) kurz angezeigt ... landet dann aber trotzdem nur bei jedem 2. versuch auf der richtigen Seite ... mich wundert nur die "abzählbare" Dynamik ... DEEDEED bzw. EDDEDDEDD ... ?!?

      1. Hi,

        in der Adresszeile wir die richtige Adresse auch (ganz) kurz angezeigt ...

        Na dann finde mal heraus, was dafür sorgt, dass sie nicht permanent da stehen bleibt - wird ja vermutlich auch JavaScript sein, was daran dann wieder herumpfuscht, und die Adresse gleich wieder durch eine neue ersetzt.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. Mahlzeit garf,

    var strHref = document.location.href;
    strHref = strHref.replace(///g,"\");

    Wozu betreibst Du diese Ersetzung?

    Immerhin hast Du dann ja hier ...

    Ziel = "../"+Sprache+"/"+strFilename;

    ... einen Pfad, indem sowohl Slashes als auch Backslashes vorkommen - ob das so sinnvoll und hilfreich ist?

    Wie immer gilt allgemein: "funktioniert nicht" funktioniert nicht - wo sind aussagekräftige und hilfreiche Fehlermeldungen?
    Dazu bei Javascript im Besonderen: was sagt die Fehlerkonsole?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. es gibt dazu irgendwie keinen Fehlercode ... das Script liefert nur ein unerwartet Ergebnis

      1. Mahlzeit garf,

        es gibt dazu irgendwie keinen Fehlercode ... das Script liefert nur ein unerwartet Ergebnis

        Wenn es in der Fehlerkonsole eines vernünftigen Browsers (Nein, der IE ist keiner!) keine Fehlermeldung gibt, dann ist auch kein Fehler aufgetreten.

        In diesem Fall handelt es sich vermutlich eher um ein Konzeptionsfehler. Vergleiche Wunsch und Wirklichkeit, d.h. das was Du gerne erreichen möchtest und das was tatsächlich passiert - z.B. indem Du geeignete Debug-Ausgaben während des Programmablaufs machst (in Javascript z.B. mittels http://de.selfhtml.org/javascript/objekte/window.htm#alert@title=alert() oder http://de.selfhtml.org/javascript/beispiele/fehlerbehandlung_try_catch.htm@title=throw()).

        Es bietet sich in Deinem Fall an, sich nach jeder Variablenzuweisung bzw. jeder Stringmanipulation einmal anzuschauen, was eigentlich in der entsprechenden Variable drinsteht.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Hi garf!

    <a href="#" onclick="spracheWechseln('de')">Deutsch</a>

    Die Funktion setzt den neuen URL.
    Gleich darauf wird aber der Link aktiv.

    Ein [link:http://forum.de.selfhtml.org/archiv/2005/1/t98353/@title=return false;] hilft.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. ach ja ... auch wenn der Kunde das jetzt gar nicht mehr haben möchte ... es funzt jetzt trotzdem - es lag an dem return ... (man lernt ja nie aus - vielleicht braucht man es ja mal woanders)

      THX

  4. var strHref = document.location.href;

    und noch eine Anmerkung: http://de.selfhtml.org/javascript/objekte/location.htm@title=location ist ein Unterobjekt von window und nicht von document.

    Struppi.

  5. Hi,

    wenn man auf Englisch drückt > kommt die Englische Version

    Hm. Die englische Version würde ich eher beim Klick auf English erwarten als bei Englisch. (Der Name der jeweiligen Sprache sollte auch in dieser Sprache genannt sein - z.B. wird ein Schwede "schwedisch" schlechter erkennen als "svenska")

    Ansonsten: wo ist die online-Seite, wo man sich das Problem angucken kann?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. @@MudGuard:

      nuqneH

      wenn man auf Englisch drückt > kommt die Englische Version

      Hm. Die englische Version würde ich eher beim Klick auf English erwarten als bei Englisch.

      He, na wenigstens keine Flaggen! ;-)

      Ich würde auch erwarten, dass die Sprachumschaltung ohne JavaScript funktioniert. Andere Seitenbesucher auch.

      Ich würde auch erwarten, gleich die für mich richtige Sprache angezeigt zu bekommen.

      z.B. wird ein Schwede "schwedisch" schlechter erkennen als "svenska"

      Und ein Chinese erst! (Davon soll’s ja einige geben.) 简体汉语 wird er lesen können, lateinische Buchstaben könnten ihm völlig fremd sein.

      Qapla'

      --
      Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
      1. Hi Gunnar.

        z.B. wird ein Schwede "schwedisch" schlechter erkennen als "svenska"

        Und ein Chinese erst!

        Ich schaetze, da werden die meisten beides gleich schlecht erkennen.

        ;-)

        Viele Gruesse,
        der Bademeister

        1. problem "gelöst" ... man landet immer auf der Startseite (in entsprechender Sprache) ... JS sollte mir die Arbeit erleichtern ... wobei dann die Dateien auch gleich geheissen hätten, was für Suchmaschinen auch nicht so doll gewesen wäre ...

          das mit dem "Button in passender Sprache" ist richtig ... ich rege mich jedesmal darüber auf, wenn ich in PD-Menüs nach "Germany" suchen soll ... und dann wiedermal nach "Deutschland" ... richtig lustig wird der Seitenaufbau z.B. in arabisch ;-)

          der Kunde wollte aber sowieso lieber Flaggen (weil der Mitbewerber das auch hat ;-) ) ...

          THX

          1. Mahlzeit garf,

            der Kunde wollte aber sowieso lieber Flaggen (weil der Mitbewerber das auch hat ;-) ) ...

            Dann hast Du den Kunden sicherlich gut be- und ihm deshalb davon abgeraten:

            http://gregor-moellring.de/anleitungen/flaggen-als-sprachsymbol/
            http://blog.ueber-setzen.com/?p=411

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|