Итак, у меня самая странная проблема: в CMS моей компании есть система новостных рассылок, которая выполняет вызов AJAX для отправки электронной почты.Теперь это прекрасно работает во всех современных браузерах во всех операционных системах, но не для одного клиента.
Этот клиент использует Windows 7 и IE9, у меня есть Windows 7 и я пробовал IE9 (даже со всеми режимами совместимости)) но это всегда будет работать.
Я не знаю, почему это не работает для них, однако я смог "исправить" это, поместив alert
до и внутри вызова AJAX.
Я думаю, что это должно быть что-то с их оборудованием или подключением, и надеялся, что у кого-то может быть объяснение.Вот вызов AJAX (с предупреждениями), поэтому вы можете видеть, что в этом нет ничего плохого (верно?):
$('#send_single').unbind().click(function(event) {
event.preventDefault();
processing();
alert('one');
$.post(
'newsletter/ajax.php',
{
action: 'send_single',
email: $('#single_email').val(),
template: $('#select_template').val(),
id: $('#select_newsletter').val()
},
function(data) {
alert('two');
finished_processing();
cmsalert(data);
}
);
});
processing()
исчезает в блоке обработки, который finished_processing()
затем удаляется.Без блоков предупреждений finished_processing()
никогда не происходит, а с окнами предупреждений он работает так, как ожидалось.
processing () и finish_processing ()
function processing(){
$('#full_overlay').fadeIn();
$('#processing').fadeIn();
}
function finished_processing(){
$('#full_overlay').fadeOut();
$('#processing').fadeOut();
}
#full_overlay
- полноэкранный фиксированный div с белым наложением.#processing
- это центрированный div, содержащий загрузочный gif и строку «Please wait ...».
finished_processing()
не происходит, поэтому я не думаю, что cmsalert()
каким-либо образом связан,(cmsalert скользит в div в нижней части страницы, содержащей - обычно успешное - сообщение)