Thomas: Frameset und Formular auf einer Seite

Hallo zusammen!

Ich bin dabei, ein Servlet zu schreiben, das ein Frameset erzeugt und an den Browser schickt. Die html-Seite, auf der das Frameset festgelegt ist, soll allerdings noch zusaetzlich ein Formular mit versteckten Elementen enthalten. Ich habe das folgendermaßen probiert:

<HTML>
<FRAMESET rows="*,70" border="1">
<FRAME name="center" src="eineSeite.html">
<FRAME name="bottom" src="andereSeite.html">
</FRAMESET>
<BODY>
<FORM METHOD="get" NAME="form">
<input type="hidden" name="next">
<input type="hidden" name="previous">
</FORM>
</BODY>
</HTML>

  1. So funktioniert es nicht. Wenn ich mit javascript von "eineSeite.html" aus auf das Formular zugreifen will, muesste es eigentlich mit "parent.document.form" oder "parent.window.document.form" gehen. Der Browser sagt mir, dass "form" nicht definiert sei.
  2. Wenn ich andererseits von "eineSeite.html" auf das Formular von "andereSeite.html" zugreifen will, funktioniert das in javascript wunderbar mit "parent.bottom.window.document.form".

Warum funktioniert die zweite Moeglichkeit und die erste nicht? Kann es sein, dass man eine Framesetdefinition nicht mit einem Formular kombinieren kann?

Danke im voraus,
Thomas

  1. Hi,

    Ich bin dabei, ein Servlet zu schreiben, das ein Frameset erzeugt und an den Browser schickt. Die html-Seite, auf der das Frameset festgelegt ist, soll allerdings noch zusaetzlich ein Formular mit versteckten Elementen enthalten.

    was für einen Sinn soll das ergeben? HTML erlaubt nur _entweder_ Frames _oder_ nicht; bzw. HTML/strict und XHTML erlauben _nur_ keine Frames. Mischen ist nicht drin.

    1. So funktioniert es nicht.

    Auch anders funktioniert es nicht. Setze das Formular in einen der Frames, oder auch in einen zusätzlichen Frame.

    Warum funktioniert die zweite Moeglichkeit und die erste nicht?

    Weil Formulare niemals in einem Frameset sein können, wohl aber in einer "normalen" HTML-Datei, die zufällig auch in einem Frameset sein kann.

    Cheatah

    1. So ein Mist! Trotzdem Danke für die Antwort. Wenn ich das Formular in einen eigenen Frame auf einer anderen Ebene lege, verkompliziert das die Servletprogrammierung erheblich. Hmmm...

      1. Aloha!

        So ein Mist! Trotzdem Danke für die Antwort. Wenn ich das Formular in einen eigenen Frame auf einer anderen Ebene lege, verkompliziert das die Servletprogrammierung erheblich. Hmmm...

        Warum das? Ich meine, ein Formular macht doch nur Sinn, wenn es auch abgeschickt wird. Das kann usergesteuert bei deinem illegalen Formular niemals geschehen.

        Wenn du einen globalen Speicherplatz haben willst: Du kannst in der Framesetdefinitionsdatei Javascript mit Funktionen und Variablen definieren und von überall her mit top.funktionsname(Parameter) und top.variablenname="wert" ansprechen.

        - Sven Rautenberg