То же самое происходит в Chrome, но я думаю, что это может быть связано со скоростью, поскольку браузер слишком быстр и отображает, а затем скрывает диалоговое окно.
Если вы отлаживаете и просматриваете JavaScript в Chrome и ломаетесь в момент создания dialog()
, он выглядит как положено.
Вам необходимо закрыть диалоговое окно после завершения последнего XMLHTTPRequest, и вы можете сделать это, воздействуя на readyState
объекта XMLHTTPRequest (см. Документацию MSDN и MDN ) .
Тем не менее, поскольку вы уже используете jQuery, я настоятельно рекомендую использовать метод jQuery .get()
для всех ваших запросов, который скрывает различия между браузерами при выполнении асинхронных HTTP-запросов (и много других отличий браузера!). Затем вы получаете кросс-браузерный код и чистый механизм обратного вызова, например:
for (var i = 0; i < 10; i++) {
address="../Image/CertificationCompany/"+ idCompany + i.toString() + ".png";
$.get(address, function(data) {
var certification = $('<a/>')
.append('<img style="width:40px;height:40px;" src="' + address + '"/>');
$("#contentCertification").append(certification);
if ($('#contentCertification a').length == 10) {
$("#wait").dialog('close');
}
});
}