Language-Umschaltung mit Javascript

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/language-umschaltung_mit_javascript_79217/page_1 - zur Vollversion wechseln!


grOOvekill@ schrieb am 19.05.2003 um 13:56

S'gott,

ich habe eine Website gebastelt, die auf einem Frameset basiert. Es gibt eine Haupt und eine Unternavigationsleiste. Am oberen Bereich befindet sich ein Link, der von deutscher auf englische Sprache umschalten soll. Wichtig dabei ist natürlich, dass ich mich auf der dementsprechenden Seite, auf die ich mich mittels Haupt und Unternavigationsleiste navigiert habe, bleibe. Es soll also nicht einfach die ganz eSite neu aufgebaut werden.

Nun dachte ich daran, das ganz emit Javascript zu realisieren. Ich würde bei einem Klick auf den Link die aktuelle URL auslesen und den letzten Teil, nach dem letzten / einfach auf die englische Seitenbezeichnung austauschen (aus /projekte/2003/skaterpark.html wird /projekte/2003/skaterpark_engl.html).

Leider habe ich bis jetzt noch keine Möglichkeit gefunden, wie ich die URL als String einlesen kann. Ich brauche dann ja auch noch die Möglichkeit, nur den letzten Teil des Strings, also den Dateinamen der Seite, zu ändern.

Hat irgendjemand schon einemal etwas derartiges programmiert? Gibt es gar einfachere Lösungen für dieses Problem?

Bin wie immer dankbar für jede Hilfe!


schrieb am 19.05.2003 um 14:24

die url in javascript:
window.location.xxx
http://selfhtml.teamone.de/javascri...te/location.htm

einlesen, parsen, setzen, geht alles mit javascript. einfach RTFM bei selfhtml machen :)


grOOvekill@ schrieb am 19.05.2003 um 14:35

Will ja echt nicht lästig sein, aber Javascript gehört definitiv nicht zu meinen Stärken. Was genau meinst du mit parsen und setzen und wie sieht das in der Praxis aus? Sorry, dass ich so dumm frage, aber mir fehlt definitiv die Experience auf diesem Gebiet.


atrox schrieb am 19.05.2003 um 14:41

er meint den string richtig zerlegen, damit du an der richtigen stelle dein _engl einsetzen kannst.


grOOvekill@ schrieb am 19.05.2003 um 14:43

Alles klar, das ist ja genau das, was ich vorhabe. Ich kann jedoch auch auf hardcore-rtfm-selfhtml-ing nicht herausfinden, wie ich den letzten Teil beim Einlesen durch einen neuen ersetze. :(


schrieb am 19.05.2003 um 14:46

einlesen:
var myURL = window.location

parsen:
http://developer.netscape.com/views...us_strings.html
(per string operatoren oder was auch immer dir einfällt :))

setzen:
window.location.href = "_eng.htm";


grOOvekill@ schrieb am 19.05.2003 um 15:46

Mann, ich werd noch bescheuert! Das Ding funzt einfach nicht. Hab mal diese Funktion gebastelt:


function tauschen(pfadname){
var logs = pfadname.split(/\w+/);
for (i=0; i<logs.length; i++) {
document.write(logs[i]);
}
}


im body schick ich die URL mittels

var pfadname = window.location;
tauschen(pfadname);

hinein.

Beim diesem Teil hier: (/\w+/) bin ich mir aber nicht so sicher. Hier muß ja das Zeichen stehen, nachdem gesplittet werden soll. Wenn ich das richtig verstanden habe, wird das Zeug dann in ein Array eingelesen.

Ich bekomme aber eine Fehlermeldung nach der anderen. Kann sie gar nicht alle aufzählen!

AARGL!


atrox schrieb am 19.05.2003 um 18:00

versuch:
newlocation=window.location.href.replace(/\.([^.]+)$/,"_eng.$1");

das setzt vor den letzen . punkt den string _eng ein.
testen im browser zb mit:
javascript:alert(window.location.href.replace(/\.([^.]+)$/,"_eng.$1"))

alternativ könnte man auch direkt nur location.pathname verändern.
siehe http://devedge.netscape.com/library...e/location.html


(wenn natürlich schon ein _eng eingesetzt ist, wird eins hinzugefügt, weshalb man es vorher entfernen müsste)


grOOvekill@ schrieb am 20.05.2003 um 10:32

Okay. Hab mal folgenden Code gebastelt, der auf einfach Seiten, also ohne Frameset ohne Probleme funktioniert. Ein wenig anspeiben tu ich mich jetzt nur bei eben einem Frameset. Bei einem Klick auf Englisch müssen in meinem Fall insgesamt vier Frames geändert werden.

Hier mal der Code:

<HTML>
<HEAD>
<TITLE>Language Bitching</TITLE>
<SCRIPT LANGUAGE="JavaScript1.2">
<!--
function Frames(URI1,F1,URI2,F2,URI3,F3,URI4,F4) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame3=eval("parent."+F3);
Frame4=eval("parent."+F4);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
Frame3.location.href = URI3;
Frame4.location.href = URI4;
}

//Language Settings
var aendern_in = "engl";
function gotoPage(sPage){
// ".html" in sPage suchen
var nPosHtml = sPage.lastIndexOf('.html');
if (nPosHtml < 0)
return; // invalid link (not .html)
// neue URL aufbauen
var sNewPage = sPage.substr(0, nPosHtml) + "_" + aendern_in + ".html";
// zur url navigieren
return window.location.replace(sNewPage);
}
//-->
</script>
</HEAD>

<BODY>

<a href="javascript:Frames('1.html','f1','2.html','f2','3.html','f3',gotoPage(parent.main.location),'f4')">English</a>
</BODY>
</HTML>

Mein Problem ist nun, dass ich beim fetten Teil irgendwie die aktuelle URL reinbekommen, in der Funktion gotoPage ändern und dann genau dort anhand der Variable site reinbekommen müsste.

Leider wird mir nur eine undefinded Site aufgerufen. Irgendwo ist da noch ein kleiner Haken, aber ich finde ihn nicht.

Any ideas?


watchout schrieb am 20.05.2003 um 10:45

man, he - das steht aber echt alles lang und breit erklärt im selfhtml:

tip: DOM - nodes




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026