Hallo Profis,
im HTML-Frame steht bei mir ein Funktionsaufruf „ChangeLanguage(‚en‘);“. Die Funktion ist in einer separaten .js-Datei (im Head eingebunden) und sieht etwa so aus:
var smLang;
function ChangeLanguage(smLangOver) {
smLang = smLangOver;
parent.frames['Hauptframe'].document.getElementsByName("BildKasten")[i].innerHTML = smMsg[smLang]["Picture"]; //fügt eine Bezeichnung in jeweiliger Sprache ein.
}
Das Funktioniert auch (smLang ist innerhalb der Funktion tatsächlich ‚en‘. Wenn ich nun aber eine andere Funktion (in derselben .js-Datei) oder auch im HTML-Frame aufrufe, dann ist die Variable smLang immer noch auf dem alten Wert, nicht auf ‚en‘. Sie wird durch folgende Funktionsaufrufe nicht mehr geändert.
Das Verrückte ist: Solange ich die Funktion nicht aufrufe, ist die globale Variable leer (logisch), nach dem ersten Aufruf mit „ChangeLanguage(‚de‘);“ ist sie ‚de‘ (auch logisch). Beim nächsten Funktions-Aufruf (z. B. mit „ChangeLanguage(‚it‘);“) ändert sie sich nicht mehr und bleibt auf dem ersten zugewiesenen Wert ‚de‘. Ich habe schon an allen möglichen Stellen versucht, diese globale Variable zu ändern, aber es geht einfach nur beim ersten mal.
Was läuft hier schief? Sind globale Variablen Einweg-Produkte?
Vielen Dank für Eure Hilfe
JayKay