на некоторых страницах я даю ссылку, которая вызывает страницу (createPDF.php), которая создает PDF с wkhtmloptf, и окно загрузки может появиться до 30 секунд.
Я хотел бы показать диалоговое окно (с использованием jQuery UI), которое покажет сообщение при загрузке страницы, а затем исчезнет, когда появится окно загрузки.
Прямо сейчас:
- Пользователь нажимает на значок PDF, он открывает диалоговое окно jQuery UI, в котором
пользователь выбирает ориентацию страницы и формат страницы.
Пользователь нажимает «Создать PDF», что делает:
( this ).dialog( "close" ); // Close current dialog (Select page orientation, ...)
$( "#dialog-modal" ).dialog( "open" ); // Open new dialog (Please wait while ....)
window.location.href = "<?php echo URL; ?>createPDF.php"; (generate and load the PDF)
// dialog should close here once the above URL is loaded
Появляется диалоговое окно с надписью «Пожалуйста, подождите», но оно не исчезает при всплывающем окне загрузки.
Есть идеи? Заранее спасибо!
Редактировать:
Я попытался загрузить файл с помощью Ajax, используя следующий код:
$.ajax({
url: "<?php echo URL; ?>createPDF.php",
async: false,
beforeSend: function( xhr ) {
xhr.overrideMimeType( 'application/octet-stream' );
},
success: function(content) {
$( "#dialog-modal" ).dialog( "close" );
}
});
Диалоговое окно закрывается после создания PDF, но я не получаю окно для загрузки ...
Редактировать 3:
Наконец, я использовал blockUI с таймаутом, чтобы закрыть его. Пользователь также может закрыть окно сообщения, если он хочет.
$( this ).dialog( "close" );
$.blockUI({ message: '<div style="padding: 20px;"><div style="font-size: 20px;">Veuillez patienter pendant que votre PDF est généré.</div> <br /> Ceci peut prendre quelques secondes. <br /> <br /> Ce message peut disparaître avant que le téléchargement ne commence.</div>' });
$('.blockOverlay').attr('title','Cliquez pour fermer ce message').click($.unblockUI);
var pdfFormat = $('#pdfFormat').val();
var pdfOrientation = $('#pdfOrientation').val();
pdfURL = pdfURL + "&f=" + pdfFormat + "&o=" + pdfOrientation;
window.location.href = pdfURL;
setTimeout(
function(){
$.unblockUI();
}, 5000);