Sorgenkind Mech: abfolge wird nicht eingehalten

nabend

ich stehe vor einem rätsel - wiedermal

und zwar (ich bin der meinung gestern gings noch) soll ein zuvor durch js aufgerufenes fenster wieder geschlossen werden, und dann ein wert abgefragt werden, allerdings wird das fenster erst geschlossen, wenn der wert abgefragt wurde .....

hier ein teil es scripts:

if(document.getElementById('action').value=="")
{
 einfaf=window.open("artikeleinf.html?user=<?php echo $user; ?>","Artikel","");
 document.getElementById('action').value="tmp";
}
else
{
 schreibgeschuetzt=1;
 document.getElementById('action').value="addart";
 document.getElementById('rsatztyp').value="a";
 einfaf.close();
 document.getElementById('addmenge').value = window.prompt("Menge:","1");
 document.forms['dok'].submit();
}

so, im ersten teil wird halt das fenster geöffnet, dann arbeitet man in diesem fenster, und dann wird in dem fenster geklickt, sodass die funktion, in dem der teil da steht nochmals aufgerufen wird.
smit kommt der zweite teil der funktion, welcher ERST das fenster wieder schließen soll, und DANN erst die eingabeaufforderung bringen soll.
im moment ist es so, dass das fenster offen und im vordergrund bleibt, und im hintergrund sich die eingabeaufforderung befindet

weiß jemand rat?

danke im vorraus

  1. Hi,

    einfaf.close();
    document.getElementById('addmenge').value = window.prompt("Menge:","1");
    document.forms['dok'].submit();

    Darstellungsaktionen wie das Schließen eines Fensters werden erst "bei Gelegenheit" ausgeführt; sie werden gewissermaßen mit einem Null-Timeout versehen. Deine Zeilen tun also dasselbe, als wenn Du geschrieben hättest:

    window.setTimeout ("einfaf.close()",0);
    document.getElementById('addmenge').value = window.prompt("Menge:","1");

    Die Lösung: Packe alles, was nach dem Schließen des Fensters geschehen soll, in eine Funktion und rufe diese ebenfalls mit Timeout auf.

    Salokin

    1. Darstellungsaktionen wie das Schließen eines Fensters werden erst "bei Gelegenheit" ausgeführt; sie werden gewissermaßen mit einem Null-Timeout versehen. Deine Zeilen tun also dasselbe, als wenn Du geschrieben hättest:

      window.setTimeout ("einfaf.close()",0);
      document.getElementById('addmenge').value = window.prompt("Menge:","1");

      Die Lösung: Packe alles, was nach dem Schließen des Fensters geschehen soll, in eine Funktion und rufe diese ebenfalls mit Timeout auf.

      Salokin

      hi
      seltsam
       denn ich habe etwas ähnliches, mit fast dem selben code, halt auf dem gleichen prinzip aufgebaut, und da funzt es
      der einzige unterschied ist, dass das geöffnete fenster keine frames enthält .... also da wo es funzt

      und das bei gelegenheit ... ich kann warten so lang ich will, es tut sich nix

      aber ich werds mal probieren

      bis denn erstmal danke

      1. hab jetz nach dem fenster.close(); die funktion aufgerufen, in der dann halt der rest stand

        selbe effekt

        das geöffnete fenster schließt sich erst genau dann, wenn man bei der eingabeaufforderung bestätigt
        UND das geöffnete fenster ist solange nicht zu benutzen (handzeiger, reagiert nicht auf mausklicks)

        d.h. man muss erst zum mutterfenster wechseln, und dann bestätigen, das is absulut nicht meinen vorstellungen entsprechend

        bis dahin

        ich hoffe jemand weiß rat