Moin!
Du bist immerhin in der Lage, die Fehlermeldung zu lesen. Dann versuche doch auch, sie zu verstehen. "ist Null oder kein Objekt" bedeutet, daß es für "URI1" keine Entsprechung gibt ... Das ist richtig. Du hast nirgends in deinem Script (vorausgesetzt, du hast alles gepostet) eine Festlegung getroffen, was denn dieses "URI1" sein soll. Wenn du das behebst, wirst du übrigens prompt eine Fehlermeldung erhalten, daß "F1" nicht vorhanden ist.
Nochmal der Code:
function Frame(URI1,F1) {
Frame1=eval("parent."+F1);
Frame1.location.href = URI1;
}
Und jetzt die dumme Frage, was die Fehlermeldung "ist Null oder kein Objekt", die sich auf Frame1.location bezieht, denn mit URL1 zu tun haben soll - diese Variable wird als Funktionsparameter nämlich sehr wohl definiert.
In deinem ersten Javascript schreibst du was von
Frame1=eval("parent."+F1);
Frame1.location.href = URI1;
In deinem zweiten Javascript aber steht:
Frame("seite.html","titel");
Meinst du, daß das irgendwie zusammenpaßt?
Wenn man eine Funktion "Frame" definiert, wie hier geschehen ist, dann paßt das prima.
Du solltest überlegen, was genau du erreichen möchtest. Im allgemeinen ist es ziemlicher Unsinn, im Header-Bereich ein Javeascript zu notieren und unterhalb von <body> ein zweites, das darauf Bezug nehmen soll. Das geht schief und ist überhaupt wahrscheinlih genauso überflüssig wie unsauber.
Ich denke, der Fragesteller weiß schon recht genau, was er möchte, und die dafür eingesetzten Mittel sind auch alle im Grundsatz tauglich. Es ist auch niemals verwerflich gewesen, Javascripte geteilt in verschiedenen Abschnitten in Body und Head zu notieren und untereinander Bezug nehmen zu lassen - jeder banalste Aufruf einer onclick-Funktion tut das.
Dass Javascript sich üblicherweise im Head befindet, insbesondere Funktionsdefinitionen, liegt schlicht daran, dass man auf diese Dinge nur zugreifen kann, wenn sie definiert sind - und da der Head als allererstes geladen ist, stehen dort abgelegte Javascripte eben schon sehr früh während des Ladevorgangs zur Verfügung, so dass man im Body darauf Bezug nehmen kann.
Aber genauso problemlos könnte man sein Javascript auch erst ganz unten im Body notieren. Ich hatte mir mal ein Javascript geschrieben, welches praktisch automatisch und nur anhand definierter Bildnamen (mit passenden Prä- oder Suffixen für Hi- und Lo-Variante) und name-Attribute Mouseover-Buttons realisierte, ohne dass man in den Bildern oder Links umständliche onmouseover-Eventhandler ausschreiben mußte. Die Einbindung dieser externen Skriptdatei durfte aus naheliegenden Gründen erst wirksam werden, nachdem alle zu beeinflussenden HTML-Elemente bereits geladen waren - also direkt vor dem </body>. Alternativ hätte ich onload eine init-Funktion aufrufen können.
- Sven Rautenberg