1

setTimeout を使用した ShowModalDialog に関する関数が必要なので、Google Chrome でポップアップ ウィンドウと ModalDialog をテストすると、いくつかの問題が発生します。ページの読み込み時に表示される 2 つのポップアップ ウィンドウがあります。

setTimeout(function(){window.open("PopupWindow.html","_blank","")},100);
setTimeout(function(){window.showModalDialog("ModalDialog.html","","")},100)};

2 つのポップアップ ウィンドウが開いた後、PupupWindow.html のボタンをクリックします。次のように関数を呼び出します。

function test()
{
  setTimeout(function(){alert("test");},1000);
}

Google Chrome 14 で正常に動作します。Google Chrome をバージョン 19 に更新した後、ModalDialog.html が閉じられるまで test() を呼び出すと、PopupWindow.html がハングします。Google Chrome 19 でケースが壊れた理由、または Google Chrome 19 で showModalDialog と window.open() を実行する方法を教えてください。助けてくれてありがとう。

4

1 に答える 1

0

新しいバージョンの Chrome は、実際には正しい動作を示しています。Firefox だけでなく Safari でも同じ動作が発生します。

モーダル ダイアログは、その性質上、ユーザーがモーダル ダイアログを完了するまで、アプリケーションの残りの部分を操作できないようになっています。

Chrome は、これを正しく処理しないことによる多くの問題に悩まされてきました。http://code.google.com/p/chromium/issues/detail?id=4202 、http://code.google.com/p/chromium/issues/detail?id=16045、およびhttp ://いくつかの例については、 code.google.com/p/chromium/issues/detail?id=42939をご覧ください。別の動作が発生している場合は、最終的にこれらのいくつかをクリーンアップし始めているようです.

一般window.showModalDialogに、ここで詳しく説明するいくつかの理由により、使用を避ける必要があります- http://tjvantoll.com/2012/05/02/showmodaldialog-what-it-is-and-why-you-should-never-use-それ/ .

モーダル ダイアログが必要な場合は、jQuery UI のダイアログ プラグインを強くお勧めします。

于 2012-07-06T01:05:35.247 に答える