Raphael Dannecker: Resize - Reload - und Formulare

Hi,

ich hab ein kleines Problem mit dem Resize der Fenstergroesse unter Netscape.
Jetzt heisst es ja immer ganz schoen, dass man beim Netscape bei einem Resize aufpassen soll und moeglichst folgenden Javascript Code verwenden soll:
____________________________________

if(!window.saveInnerWidth) {
  if (!document.all)
        window.onresize = resize;
  window.saveInnerWidth = window.innerWidth;
  window.saveInnerHeight = window.innerHeight;
}

function resize() {
    if (saveInnerWidth != window.innerWidth
        saveInnerHeight != window.innerHeight )
    {
        window.location.reload(false);
    }
}
_____________________________________

Dies fuehrt dann auch schoen zu einem Reload der Seite, wenn die Fenstergroesse sich geaendert hat, aber:
Wenn in der Seite ein Formular war, dass der User bereits ausgefuellt hat, dann sind diese Angaben verloren. Eigentlich war ich der Meinung, dass ein reload(false) einen sanften Reload machen sollte (Ohne die Seite neu anzufordern). Leider ist das aber nicht der Fall. Der Web-Server schreibt mir folgendes in die Logfiles:
"GET /forms/eintragen.html HTTP/1.0" 200 33924

Er liefert also die Seite nochmal aus.
Uebrigens: Warum sagt der WebServer nicht 304 (Not Modified)?
Ist das etwa mein Problem?

Statt einem reload(false) hab ich auch schon einmal ein history.go(0) versucht. Das baut dann aber meine Seite nicht neu auf.

Etwas ratlos stehe ich nun da.
Was macht man denn jetzt am besten bei einer Window-Groessenaenderung unter Netscape?

Gruss Raphael

  1. hi!

    soviel ich weiss, ist es unmöglich netscape dieses verhalten abzugewöhnen - die einzige lösung bestände wohl darin, beim resize das formular zu senden, und die seite dann mit den übermittelten daten vorausgefüllt vom server aus erneut zu senden... aber ob das den aufwand lohnt ist wohl fraglich - oder das formular in ein festes fenster auslagern, das nicht "geresized" werden kann...

    mfg
    -p-

    Hi,

    ich hab ein kleines Problem mit dem Resize der Fenstergroesse unter Netscape.
    Jetzt heisst es ja immer ganz schoen, dass man beim Netscape bei einem Resize aufpassen soll und moeglichst folgenden Javascript Code verwenden soll:
    ____________________________________

    if(!window.saveInnerWidth) {
      if (!document.all)
            window.onresize = resize;
      window.saveInnerWidth = window.innerWidth;
      window.saveInnerHeight = window.innerHeight;
    }

    function resize() {
        if (saveInnerWidth != window.innerWidth
            saveInnerHeight != window.innerHeight )
        {
            window.location.reload(false);
        }
    }
    _____________________________________

    Dies fuehrt dann auch schoen zu einem Reload der Seite, wenn die Fenstergroesse sich geaendert hat, aber:
    Wenn in der Seite ein Formular war, dass der User bereits ausgefuellt hat, dann sind diese Angaben verloren. Eigentlich war ich der Meinung, dass ein reload(false) einen sanften Reload machen sollte (Ohne die Seite neu anzufordern). Leider ist das aber nicht der Fall. Der Web-Server schreibt mir folgendes in die Logfiles:
    "GET /forms/eintragen.html HTTP/1.0" 200 33924

    Er liefert also die Seite nochmal aus.
    Uebrigens: Warum sagt der WebServer nicht 304 (Not Modified)?
    Ist das etwa mein Problem?

    Statt einem reload(false) hab ich auch schon einmal ein history.go(0) versucht. Das baut dann aber meine Seite nicht neu auf.

    Etwas ratlos stehe ich nun da.
    Was macht man denn jetzt am besten bei einer Window-Groessenaenderung unter Netscape?

    Gruss Raphael

  2. Hi Raphael,

    wie so oft gilt auch hier - "Forums-Auslese - da werden Sie geholfen."

    In <../../sfausles/tsfa_tcc.htm#a2> steht das komplette Resize-Überwachungsskript (inkl. des Copyright-Vermerkes, den Du bestimmt nur deswegen aus dem Code genommen hast, um das Archiv nicht unnötig aufzublähen ;-) - sowie auch ein Hinweis zum Thema "Variablenübergabe im Resize-Fall" plus Link zu dem Artikel der erklärt wie's geht. Wenn Du das beherzigst und in Dein Reload-Skript reinbaust, wird _vor_ dem Reload der Formularinhalt in window.name geschrieben und kann dann _nach_ dem Reload dort wieder ausgelesen und ins Formular eingefügt werden. Aber was quatsche ich da - klick auf den Link, da steht alles.

    Grüße,

    Utz