2017-02-20 25 views
0

В настоящее время я пытаюсь вызвать загрузку файла, используя следующий код JavaScript: window.location.href = downloadUrl;Изменение window.location.href в Firefox без закрытия WebSockets

Это отлично работает в Chrome, IE и Edge, но Firefox выгружает страницу из-за нового URL-адреса и, следовательно, закрывает все открытые веб-узлы. Я знаю, что это странный манере FF, но есть ли какое-нибудь обходное решение, которое я могу использовать? Он будет работать с window.open(downloadUrl); и закрывать новую вкладку после определенного таймаута, но я хотел бы предотвратить открытие новой вкладки только для запуска загрузки.

Любая помощь будет оценена, спасибо.

ответ

0

После большого исследования и экспериментирования я нашел следующее решение:

Создать ссылку на JavaScript с атрибутом загрузки, щелкните его и удалить его через какое-то время (я использую ExtJS):

var a = document.createElement("a"); 
document.body.appendChild(a); 
a.style = 'display: none'; 
a.href = downloadUrl; 
a.download = 'test.zip'; 
a.click(); 

Ext.defer(function(link) { 
    document.body.removeChild(link); 
}, 200, this, [a]);