ボタンをクリックするだけでサーバー上で作業が行われるWebアプリケーションがあります。この作業はajax呼び出しによって開始され、その呼び出しの前に、アニメーションGIFを含むjquery UIダイアログが表示され、ユーザーに情報が伝わっていることを知らせることができます。作業が完了すると、ajax呼び出しが戻り、ダイアログが閉じます。私が抱えている問題は、IE 7/8ではダイアログが開かないということです。コールバックからダイアログを閉じるコードを削除すると、コールが完了した後にダイアログが表示され、あまり役に立ちません。ここでajax呼び出しが完了するまでjqueryuiダイアログが開かない(IEのみ)
は私のダイアログの定義です:AJAX呼び出しがに数分かかることがあり
function executeImport(importData) {
importData.carriers = JSON.stringify(selectedCarriers);
$("#dgImporting").dialog("open");
$.ajax({
type: "POST",
traditional: true,
url: "import/execute",
async: false,
data: JSON.stringify(importData),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
$("#dgImporting").dialog("close");
}
});
:
$("#dgImporting").dialog({
autoOpen: false,
width: 250,
height: 125,
modal: true,
resizable: false,
position: 'center',
closeOnEscape: false,
open: function (event, ui) { $(".ui-dialog-titlebar-close").hide(); }
});
そして、ここでは、私は私のAJAX呼び出しを実行するために使用しています方法であり、戻りますが、この設定ではダイアログボックスが表示されません。私が削除した場合( "#dgインポート")。ダイアログ( "閉じる");コールバックからダイアログが表示されますが、ajax呼び出しが完了するまでは表示されませんが、ajax呼び出しを行う前にダイアログ(「開く」)を呼び出しています。
FirefoxとChromeでは、これは期待どおり動作しますが、IEで正しく動作させる必要があります。そこにいるJavaScriptの看護師は私が何をすることができるか考えていますか?
最後に、私はこれほど長く苦労してきました。 – mydoghasworms