Hallo,
bei dem Skript unten steh ich inzwischen vollkommen auf dem Schlauch. Die Variablenbelegung über den Funktionsaufruf im script-tag funktioniert soweit.
Ja und erzeugt beim rendern durch den Browser folgendes HTML
<html><head>
<script type="text/javascript">
index = new Array ();
index["home"] = new Array("Enzyclopaedien", "Editorial");
index["Enzyclopaedien"] = new Array("ECO","OCB");
index["ECO"] = new Array("A", "B", "C", "D", "E");
index["Editorial"] = new Array();
var linkI = "<a href="javascript:seti('";
var linkII = "')">";
var linkIII = "</a></br>";
function seti(menue) {
for (i in index)
{ if ( i==menue)
{ document.write(i+'</br><ul>');
{ for (j in index[i])
{ document.write(linkI+index[i][j]+linkII+index[i][j]+linkIII); }
document.write('</ul>'); }
} } }
</script></head><body>
<script>
seti('home');
</script>
home<br>
<ul>
<a href="javascript:seti('Enzyclopaedien')">Enzyclopaedien</a>
<br>
<a href="javascript:seti('Editorial')">Editorial</a>
<br>
</ul>
</body>
</html>
Abgesehen davon, dass diese Elementverschachtelung UL-A-BR-/UL unsinnig ist, wird bei einem Klick auf einen der Links mit document.write immer ein _neues_ Dokument beschrieben. Das alte Dokument geht dabei verloren. Nach Klick auf 'Enzyclopaedien' steht z.B. im Dokument dann nur noch folgendes:
<html><head></head>
<body>
Enzyclopaedien
<br>
<ul>
<a href="javascript:seti('ECO')">ECO</a>
<br>
<a href="javascript:seti('OCB')">OCB</a>
<br>
</ul>
</body>
</html>
Das SCRIPT-Element mit der Funktion seti() ist damit Geschichte und nicht mehr greifbar. Ein Klick auf 'ECO' ergibt:
Fehler: seti is not defined
Quelldatei: javascript:seti('ECO')
Zeile: 1
Übergebe ich die Werte allerdings über einen Link, hakt der FF in der zweiten for-Schleife (index is not defined). Der IE nimmt zwar die zweite for-Schleife noch mit, gibt dann aber nach einem zweiten Aufruf über einen Link nichts weiter.
Ja, dann wird sofort ein neues Dokument beschrieben und das SCRIPT-Element ist weg.
Ich kapiers nicht, nicht einmal soweit dass ich wüsste wonach ich genau googeln soll.
Das, was Du machen willst, geht so nicht. Der beste Weg wäre eine serverseitige Programmlogik zum Erzeugen der unterschiedlichen HTML-Dokumente zu nutzen.
Mit JavaScript musst Du dafür sorgen, dass das SCRIPT-Element erhalten bleibt. Das SCRIPT muss in einem Dokument stehen, welches in einem anderen Fenster(window) dargestellt wird, als das Dokument, welches vom SCRIPT aus per document.write beschrieben wird. Das würde in einem Frameset der Fall sein, in dem das SCRIPT im Frameset-Dokument(parent) steht und das document.write die Inhalte jeweils in einen Frame schreibt. Das ist zweifach nachteilig. Es setzt Frames und JavaScript voraus.
viele Grüße
Axel