0

私はこれを試しましたが失敗しました:

var win = showModalDialog('http://localhost/index.php');
win.close();
4

4 に答える 4

5

モーダルウィンドウの定義は、モーダルウィンドウが閉じられるまで現在の関数の実行が停止することです。つまり、への呼び出しは、showModalDialog()表示されているダイアログが閉じるまでブロックされます。したがって、ウィンドウがすでに閉じられたwin.close()に呼び出されます(意図したものではありません)。

いくつかのオプションがあります:

  • ダイアログを非モーダルとして表示し、特定の条件が満たされるまでイベントループで待機します。次に、呼び出し元の関数からウィンドウを閉じます。

  • モーダルダイアログは適切なタイミングで閉じます。

于 2009-11-25T09:31:09.150 に答える
1

を実行するshowModalDialogと、コードシーケンス全体がブロックされます。続行するにはモーダルウィンドウを閉じる必要がありますwinnull、それまでに:P

于 2009-11-25T09:30:13.660 に答える
0

モーダル ダイアログとは、ダイアログが閉じられるまで次の演算子が実行されないことを意味します。これが、次の行に何を置いても機能しない理由です。

これがモーダル ダイアログの目的です。現在のウィンドウをフリーズし、ユーザーから必須の入力を取得します。すぐに閉じたい場合は、モーダル ダイアログは必要ないと思います。

ちなみに、showModalDialog の戻り値はダイアログの戻りコードであり、ウィンドウ変数ではありません!

通常、モーダル ダイアログは内部から閉じられます。ユーザーの入力を待ちたくない場合は、index.php コードにそれを閉じる何かが必要です。

于 2009-11-25T09:36:28.583 に答える