Raphael: eigentümliches Verhalten bei Wertzuweisung

Hi,

präziser ging das Thema leider nicht. Vorab: ich brauche wg. Intranet nur für den IE zu entwickeln, deshalb ist mir jede Lösung (auch MS Lösung) recht.

Folgendes Problem stellt sich mir: Ich habe 2 Frames: oben und unten. Im oberen Frame ist in einem Formular folgendes Feld definiert:

<input type="hidden" name="h_scroll_position" value="0">

Zusätzlich eine Testausgabe, die anschließend aber nicht mehr vorhanden sein darf:

<input type="text" name="testausgabe" value="">

In dem unteren Frame starte ich einen Timer, der mir den Wert von h_scroll_position neusetzt und eine Ausgabe in testausgabe realisiert:

function scrollen(){
  parent.oben.document.all.h_scroll_position.value = document.body.scrollLeft;
  parent.oben.document.all.testausgabe.value = parent.oben.document.all.h_scroll_position.value;
}
setInterval("scrollen()",500);

Das hat zur Folge: Wenn ich scrolle aktualisiert sich der Wert in der testausgabe (also folglich auch in h_scroll_position, oder bin ich jetzt schon ganz blöd?). So weit so gut. Wenn ich jetzt aber das Formular abschicke, dass h_scroll_position enthält, kommt auf der nächsten Seite immer Value 0 an. (wenn ich oben Value="5" setze entsprechend 5, also ist die 0 nicht irgendeine Fehlerausgabe)

Nun die Preisfrage: Wieso?

MfG, Raphael

  1. präziser ging das Thema leider nicht. Vorab: ich brauche wg. Intranet nur für den IE zu entwickeln, deshalb ist mir jede Lösung (auch MS Lösung) recht.

    Der in diesem Falle mehr Problemem bereitet als andere.

    <input type="hidden" name="h_scroll_position" value="0">

    statt umständlich zwei Felder zu nutzen nimm doch zu Debugzwecken ertsmal:

    <input type="button" name="h_scroll_position" value="0">

    In dem unteren Frame starte ich einen Timer, der mir den Wert von h_scroll_position neusetzt und eine Ausgabe in testausgabe realisiert:

    function scrollen(){
      parent.oben.document.all.h_scroll_position.value = document.body.scrollLeft;
      parent.oben.document.all.testausgabe.value = parent.oben.document.all.h_scroll_position.value;
    }
    setInterval("scrollen()",500);

    Soweit ich weiss kann der IE window.document.onscroll.
    Also warum nicht:

    window.document.onscroll = scrollen;

    Übrigens funktioniert deine Variante nur im Ouirksmode, falls die Seite einmal im standardmode (d.h. mit gültigen DOCTYPE) geschrieben wird ist document.body.scrollLeft/Top = 0

    Das hat zur Folge: Wenn ich scrolle aktualisiert sich der Wert in der testausgabe (also folglich auch in h_scroll_position, oder bin ich jetzt schon ganz blöd?). So weit so gut. Wenn ich jetzt aber das Formular abschicke, dass h_scroll_position enthält, kommt auf der nächsten Seite immer Value 0 an. (wenn ich oben Value="5" setze entsprechend 5, also ist die 0 nicht irgendeine Fehlerausgabe)

    Das ist wirklich seltsam, das einzige was sein kann, ist, das durch den Aufruf des Intervals, beim absenden eine Null reinkommt. Mach doch Probehalber in das formular onsubmit = "alert(this.h_scroll_position.value);"

    Struppi.