Не скачивается PDF в сафари через JS
Использую следующее решение , в нормальных браузерах таких как хром, фаерфокс , опера. Но сафари просто открывает в новом окне pdf
function SaveToDisk(fileURL, fileName) {
// for non-IE
if (!window.ActiveXObject) {
var save = document.createElement('a');
save.href = fileURL;
save.target = '_blank';
save.download = fileName || 'unknown';
var evt = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': false
});
save.dispatchEvent(evt);
(window.URL || window.webkitURL).revokeObjectURL(save.href);
}
// for IE < 11
else if ( !! window.ActiveXObject && document.execCommand) {
var _window = window.open(fileURL, '_blank');
_window.document.close();
_window.document.execCommand('SaveAs', true, fileName || fileURL)
_window.close();
}
}
SaveToDisk(pdf,"presentation")
Ответы (1 шт):
Автор решения: Rudi
→ Ссылка
У меня нет возможности проверить данный код в сафари, но это работало для меня во всех других браузерах которые я тестировал, на данный момент ссылки на скачивание просто обернуты в тэг
<a href="http://192.168.1.227:80/0.dae">Downlaod .dae</a>
и я не испытываю проблем с этим. У меня файлы отдаёт Nginx. Возможно у вас получится адаптировать этот код под свои нужды.
function downloads(url) {
let link_url = document.createElement("a");
link_url.download = url.substring((url.lastIndexOf("/") + 1), url.length);// file name 0.pdf
link_url.href = url;
document.body.appendChild(link_url);
link_url.click();
document.body.removeChild(link_url);
delete link_url;
}
downloads("http://192.168.1.227:80/0.pdf")
function downloads_(url, filename) {
let link_url = document.createElement("a");
link_url.download = filename
link_url.href = url;
document.body.appendChild(link_url);
link_url.click();
document.body.removeChild(link_url);
delete link_url;
}
downloads_("http://192.168.1.227:80/", "0.pdf")