Link von 1. Frame in 2. Frame mit anderer Datei-Endung
Habi
- javascript
Hallo zusammen!
Dies ist mein erstes Posting. Deshalb möchte ich mich erstmal bei den vielen netten Leuten bedanken, die sich den Fragen hier annehmen. Das hat mir schon etliche Male sehr geholfen! Nun aber zu meiner Frage:
Ich habe in einem oberen Frame drei Text-Links, und zwar 'de' für Deutsch, 'fr' für Französisch und 'en' für Englisch. Die Ausgabe der gelinkten Dateien erscheint im (Haupt-)Frame darunter. Soweit kein Problem, doch ich möchte mittels JavaScript erreichen, dass die im unteren Frame existierende Datei (z.B. 'test_de.html') durch die entsprechend per link angewählte Datei (z.B. 'test_fr.html' nach drücken des Links 'fr' oder 'test_en.html' nach drücken des Links 'en') ersetzt wird.
So wie ich es jetzt habe, kann nur 1 fixe Seite aufgerufen werden:
<a href="" class="toplinks" onClick="parent.main.location='main_de.html'; return false;">de</a>
<a href="" class="toplinks" onClick="parent.main.location='main_en.html'; return false;">en</a>
<a href="" class="toplinks" onClick="parent.main.location='main_fr.html'; return false;">fr</a>
Wie ist es möglich, dass einfach der Name der im unteren Frame existierenden Datei genommen wird, die Endung jedoch nach Wahl der Sprache beinflusst wird?
Um es nochmal klar auszudrücken: Durch klicken der Sprachen-Links 'de', 'fr' und 'en' möchte ich die aktuell im unteren Frame angezeigte Seite durch die Seite der gewählten Sprache ersetzen.
Vielen Dank für Eure Hilfe!
Habi
Hi,
Ich habe in einem oberen Frame drei Text-Links, und zwar 'de' für Deutsch, 'fr' für Französisch und 'en' für Englisch. Die Ausgabe der gelinkten Dateien
Ressourcen. HTTP kennt keine Dateien.
erscheint im (Haupt-)Frame darunter. Soweit kein Problem, doch ich möchte mittels JavaScript erreichen,
Warum? Was ist mit denen, die kein JavaScript anhaben wollen, können oder dürfen?
dass die im unteren Frame existierende Datei (z.B. 'test_de.html') durch die entsprechend per link angewählte Datei (z.B. 'test_fr.html' nach drücken des Links 'fr' oder 'test_en.html' nach drücken des Links 'en') ersetzt wird.
Klarer Fall für Content-Negotiation. Siehe z.B. http://aktuell.de.selfhtml.org/artikel/server/alt-http/index.htm, oder eben die Apache-Doku.
<a href=""
Das ist kein Link. Je nach Browser funktioniert das nicht - und ohne JavaScript sowieso nicht.
Wie ist es möglich, dass einfach der Name der im unteren Frame existierenden Datei
Die URL der im unteren Frame existierenden Ressource. Eine URL steht im location-Objekt. Das möchtest Du aber wie gesagt gar nicht machen. Vor allem möchtest Du Dich nicht darauf verlassen, dass das Frameset existiert, sondern die Links in die jeweilige Seite packen.
Cheatah
Cheatah hat in vielen Dingen Recht, aber vielleicht machst Du dir das Leben auch nur unnötig schwer.
Starte mit WWW.DEINSERVER.DE/index.html, die den User in drei Sprachen, mit Flaggen, oder wie auch immer nach seiner Sprache fragt.
Dann gibt es ein sprachneutrales Verzeichnis für Bilder, CSS, Scripte usw. und für jede Sprache ein Verzeichnis mit allen übersetzten HTML-Dateien, deren Namen dann keine Sprachangabe mehr enthalten.
Also z.B.:
WWW.DEINSERVER.DE/stuff/stylesheet.css
WWW.DEINSERVER.DE/de/greeting.html <-- in Deutsch
WWW.DEINSERVER.DE/en/greeting.html <-- in Englisch
WWW.DEINSERVER.DE/fr/greeting.html <-- in Französisch
WWW.DEINSERVER.DE/fi/greeting.html <-- in Finnisch ;-)
Wenn Du dann eine andere Sprache haben willst, linkst Du einfach auf die entsprechende Datei im anderen Unterbaum.
Das geht ohne Javascript mit etwas Tipparbeit oder Includes, oder mit Javascript ungefähr so:
location.href='/en/'+location.pathname.substr(4,location.pathname-4)
Alexander
location.href='/en/'+location.pathname.substr(4,location.pathname-4)
Tippen müßte man können:
location.href='/en/'+location.pathname.substr(4,location.pathname.length-4)
Alexander