Blob createObjectURL de téléchargement ne fonctionne pas sous Firefox (mais fonctionne lorsque le débogage)
J'ai un étrange problème, la fonction ci-dessous est celle que j'ai créé sur la base de ce que j'ai trouvé sur le net à propos de la création d'un Blob dans le client à la volée avec des données binaires dans (passé comme un tableau) et de pouvoir les télécharger. Ce qui fonctionne à merveille dans Chrome, mais ne pas faire n'importe quoi dans Firefox - à MOINS que je debug et pas à travers le code. Oui, bizarrement, si je créer un point de rupture à l'intérieur de la fonction et de l'étape à travers elle, la un.cliquez sur() fera apparaître la fenêtre de téléchargement!
function downloadFile(filename, data) {
var a = document.createElement('a');
a.style = "display: none";
var blob = new Blob(data, {type: "application/octet-stream"});
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}
Quelqu'un peut m'aider? Cela a été testé à l'aide de Firefox 38.0.5.
- Un peu bizarre que l'appel à
document.body.appendChild(a);
est nécessaire pour Firefox. - Double Possible de stackoverflow.com/questions/37817591/...
- Est revokeObjectURL vraiment nécessaire?
Vous devez vous connecter pour publier un commentaire.
Vous êtes probablement retrait de la ressource trop vite, essayez de retarder elle
0
fonctionne tout aussi bien à partir de ce que je peux dire - Firefox juste besoin d'un soupçon que ce que vous faites peut aller jusqu'à la fin de la pile d'appel, la durée réelle semble être hors de propos.Ci-dessus n'a pas résolu le problème pour moi. Mais celui-ci fait à la place:
Programmatique cliquez sur <a>-tag ne fonctionne pas sous Firefox
C'était un problème avec le déclenchement d'événement de clic, pas prématuré de suppression de la ressource.
document.body.appendChild(newAElement);
travaillé aussi pour moicette solution fonctionne pour moi en bot google chrome et firefox pour d'ancrage existant élément de télécharger le fichier binaire