Am working on a challenging task whereby I have an application which has a link which when clicked a document should be downloaded. I have written some Javascript code to detect immediately the browser receives a download I should perform some action. My code seems not to detect any file received on download.
I have tested by downloading a file but it doesnt throw the alert message.
Anchor link to be clicked
<a href="{{ route('b2c.policy') }}"
download="Monthly Report for March 2014.pdf" id="policyDownload">Download Policy</a>
Javascript code to detect download
$( "a#policyDownload" ).mousedown(
function(e) {
//Get current time
var downloadID = ( new Date() ).getTime();
// Update the URL that is *currently being requested
$( "a#policyDownload" ).href += ( "?downloadID=" + downloadID );
//search for the name-value pattern with the above ID.
var cookiePattern = new RegExp( ( "downloadID=" + downloadID ), "i" );
//watch the local Cookies to see when the download ID has been updated by the response headers.
var cookieTimer = setInterval( checkCookies, 500 );
//check the local cookies for an update.
function checkCookies() {
// If the local cookies have been updated
if ( document.cookie.search( cookiePattern ) >= 0 ) {
clearInterval( cookieTimer );
alert('Downloaded');
}
}
}
);