Markus Bockholt: Keinen blassen Schimmer wie ich location einsetzen kann

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

  1. 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

  2. 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)