document.location.href mit relativem Pfad - funzt nicht
garf
- javascript
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>
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
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 ... ?!?
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
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
es gibt dazu irgendwie keinen Fehlercode ... das Script liefert nur ein unerwartet Ergebnis
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
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
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
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.
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
@@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'
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
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
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