Keinen blassen Schimmer wie ich location einsetzen kann
Markus Bockholt
- javascript
Ich möchte Seiten mehrsprachig anbieten. Dazu hab ich ziemlich nah an den Wurzeln meiner Verzeichnisstruktur eine Aufteilung gemacht in die Sprachen (Momentan deutsch und englisch). Jetzt hab ich ein Frame von dem aus ich mit einem Formularpulldownmenü die Sprachen steuern möchte. Das heißt der Browser soll den Pfad vom Hauptframe (bei mir Content genannt) erkennen und am Anfang des Pfades das Verzeichnis en durch ger ersetzen und den restlichen Pfad beibehalten. Was muß ich da dann einsetzen?
Momentan sieht das ganze so aus:
<html>
<head>
<title>Untitled</title>
</head>
<script language="JavaScript">
<!--
function Go(x)
{
if(x == "nothing")
{
document.forms[0].reset();
document.forms[0].elements[0].blur();
return;
}
else if(x == "end") top.location.href = parent.frames[1].location;
else
{
parent.frames[3].location.href = x;
document.forms[0].reset();
document.forms[0].elements[0].blur();
}
}
//-->
</script>
<body bgcolor="#006699" leftmargin=0 topmargin=0>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr><td height="15 pt" colspan="2"> </td></tr>
<tr>
<td width="100pt" valign="top"><form>
<select size=1 name="Auswahl" onChange=
"Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
style="width:130px; background-color:#006699;
font-size:9pt; font-family:Arial,sans-serif; color:#B4D2E1" width=350>
<option value="nothing">Choose Language
<option value="nothing">------------------------
<option value="../../ger/content/start.html">Deutsch
<option value="../../en/content/start.html">Englisch
<option value="nothing">------------------------
<option value="end">Beenden
</select></form>
</td>
Ich bin noch blutiger Anfänger in Sachen Javascript und konnte mit der Erklärung in Selfhtml leider nicht viel anfangen zum Befehl location.
Schon mal Dank im voraus
Markus
Hallo!
Zum ermitteln der URL des Frames "Content":
parent.Content.location.pathname
ergibt z.B.: /content/start.html
location.href hätte z.B folgendes augegeben. http://www.markus.de/content/start.html
Dann zu /content/ etwas hinzufügen:
parent.Content.location.pathname = lang + parent.Content.location.pathname;
Das dan schön in eine Funktion:
function frameurl(lang, frame)
{
var pn = parent.frames[frame].location.pathname;
parent.frames[frame].location.pathname = lang + pn;
}
In Deinem Fall aufzurufen mit:
frameurl("en", "Content");
Falls Du noch ein Mal einen Knoten hast, dann nur zu!
Thilo
Ich möchte Seiten mehrsprachig anbieten.
Was hältst Du von einem Ansatz, der völlig ohne
Programmieren auskommt und deshalb auch ohne
aktiviertes JavaScript im Browser funktioniert?
(http://www.teamone.de/selfaktuell/artikel/schroepl04.htm)