2009-11-25 34 views

Répondre

1

Lorsque vous exécutez showModalDialog, toute la séquence de code est bloqué. Vous devez fermer la fenêtre modale pour continuer, cependant win sera null d'ici là: P

5

La définition d'une fenêtre modale est que l'exécution de la fonction en cours s'arrête jusqu'à ce que la fenêtre modale soit fermée. C'est-à-dire que l'appel à showModalDialog() bloquera jusqu'à ce que la boîte de dialogue affichée soit fermée. Par conséquent, votre win.close() sera appelé après la fenêtre est déjà fermée (pas ce que vous avez l'intention de faire).

Vous avez un couple d'options:

  • Montrer la boîte de dialogue comme non modale et attendre dans une boucle d'événements jusqu'à ce qu'une certaine condition est remplie. Ensuite, fermez la fenêtre de la fonction d'appel.

  • La boîte de dialogue modale se ferme à un moment approprié.

+0

Alors est-il possible de fermer la boîte de dialogue modale avec le script? – Mask

+0

Non, vous ne pouvez pas le fermer, car il est modal ... – sdwilsh

+0

Eh bien, le dialogue pourrait * se fermer * avec 'window.close()', mais juste comme @sdwilsh dit, vous ne pouvez rien faire de l'extérieur de il. –

0

La boîte de dialogue modale signifie que l'opérateur suivant n'est pas exécuté jusqu'à ce que la boîte de dialogue soit fermée. C'est pourquoi rien de ce que vous placez dans la ligne suivante ne fonctionnera jamais.

C'est le but des boîtes de dialogue modales - pour geler la fenêtre courante et obtenir une entrée obligatoire de la part de l'utilisateur. Si vous voulez le fermer immédiatement, je suppose que vous n'avez pas vraiment besoin d'un dialogue modal. Par ailleurs, la valeur de retour de showModalDialog est le code retour du dialogue, et non une variable de fenêtre! Normalement, les boîtes de dialogue modales sont fermées de l'intérieur. Si vous ne voulez pas attendre l'entrée de l'utilisateur, il doit y avoir quelque chose dans le code index.php qui le ferme.

+0

Comment le fermer de l'intérieur, pouvez-vous être plus précis? – Mask

+1

Vous pourriez avoir un événement onLoad dans l'index.php qui mettrait en place un timer et un appel à window.close après un certain temps. Qu'essayez-vous d'accomplir? La fenêtre qui clignote et se ferme? Pourquoi? –

0

Si vous voulez le fermer de l'intérieur de la boîte de dialogue modale, vous pouvez utiliser:

$ .trigger ("clic"); (, parent.document "ui-dialogue-titlebar près.")

Questions connexes