I have a web page (made with JSF) where some links allow the user to get a PDF file.
When the user clicks on such a link, a waiting popup (it is a modal panel) is displayed (because the generation of the PDF can be long), and once the file is created, IE displays the "File download" popup that proposes "Open", "Save" and "Cancel" options.
Is there a way in Javascript to know from my web page when this popup is closed, i.e. when the user has saved (or opened) the PDF file?
To be a little more precise, in the web page that displays the link to the PDF file, a modal popup is displayed (the "waiting popup") in order to make the user waits for the "File download" popup. The problem is that when the user Saves (or open) the PDF file, the "File download" popup closes, but the user then "returns" to the original webpage, with the waiting popup still displayed.
Note that my application runs only in IE6, so I am not against a IE(6)-only solution...
I have also no problem with solutions that need jQuery ;)
Edit: If a solution exists to catch any event that is fired exactly when the "File download" popup is displayed to the user (i.e. before the user chooses to Save, Open or Cancel), it will be fine for me too!
I had to work on this kind of issue, on another project. I finally found a smart solution, as explained in another Stackoverflow question.
The explanation is given in the following post: http://gruffcode.com/2010/10/28/detecting-the-file-download-dialog-in-the-browser
The idea is to "simply" use a cookie to define when the file is downloaded.
No such event exists. You need to take a different approach to solve this.
target="myhiddeniframe"
)onload
attribute of the iframe to a callback that hides your spinnerNet effect: you "spin" while the pdf is generated, and "unspin" when the "File download" dialog appears (as opposed to when the "File download" dialog is closed).
Example:
$('.generate_file_asynchronously').click(function(){
var url = $(this).attr('href');
show_loading_message();
$.get(url, function(file_url) {
hide_loading_message();
window.location.href = file_url;
});
return false;
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With