Создал скрипт скачивания файла, который перенаправляет пользователя на страницу обработки файла и сразу после скачивает его выводя диалоговое окно.
Вопрос в том как определить что загрузка файла началась или диалоговое окно закрыто или что-либо что бы запустить переход на главную страницу?
Так я запускаю загрузку файла:
<script>location.replace("/download.php?file='.$name.'");</script>
А в download.php
все по стандартному взятое отсюда.
Можно открыть загрузку файла в отдельном окне/вкладке, и проверять когда оно будет закрыто.
Пример:
<script type='text/javascript'>
function openTab(url, callback){
var popup = window.open(url, "_blank");
if(typeof callback == 'function'){
var interval = window.setInterval(function() {
try {
if (popup == null || popup.closed) {
window.clearInterval(interval);
callback();
}
}
catch (e) {
}
}, 500);
}
popup.focus();
}
//JS
document.getElementById('link-download').onclick = function (event){
openTab(event.target.href, function(){
/* Действия после старта скачивания */
window.location.reload();
});
return false;
}
//jQuery
$(document).on('click', '.download-file', function(e){
e.preventDefault();
openTab(event.target.href, function(){
/* Действия после старта скачивания */
window.location.reload();
});
});
</script>
<a href="/download.php?file='<?php echo $name;?>'" id="link-download" class="download-file">Скачать</a>
Если в файле download.php
возникли проблемы, или файл не найден, и вы хотите закрыть новое окно/вкладку, то можно просто вывести:
echo "<script type='text/javascript' charset='utf-8'>if(window.opener){window.close();}</script>";
P.S. Используйте один из вариантов или с jQuery
framework или на чистом js
, оба не оставляйте.
P.S.S. Пример, для примера, копирование-вставка может не сработать.
P.S.S.S. Метод отслеживания закрытие окна может и не сработать.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Пишу парсер выдачи результатов поиска гуглаВроде бы несложно
Не могу понять , как сделать так , чтобы при удачной проверки формы ( required ) показывался alert с сообщением о том , что письмо удачно отправилось
Хочу для Всех пользователей, которые в группе "регистр", показать сообщение, а для тех, кто в других группах, не показыватьКак сделать такую...