2017-04-12 3 views
0

J'ai un bouton dans mon application qui, lorsque cliqué sur offre plusieurs téléchargements. Après avoir cliqué sur le bouton, plusieurs boîtes de dialogue "Enregistrer le fichier" apparaissent, et indépendamment de ce que fait l'utilisateur - annuler ou enregistrer - lorsque la dernière boîte de dialogue est fermée, toute la fenêtre chrome (pas l'onglet) se bloque. Je peux toujours taper dans la console, mais seulement des lettres et des chiffres. L'entrée ne fonctionne pas, le décalage ne fonctionne pas. La touche "Supprimer" produit de minuscules cercles rouges dans la console. Si je démarre une fonction qui imprime sur la console chaque seconde avant de faire tout cela, elle continue de fonctionner. Donc ce n'est pas un gel total, mais ça pourrait aussi bien être, rien ne répond. J'ai même essayé de le laisser quand je suis allé déjeuner, toujours gelé quand je suis revenu.chrome se fige après plusieurs boîtes de dialogue de téléchargement sont ouverts

Ce problème se produit uniquement si, à tout moment du processus, plusieurs boîtes de dialogue «Enregistrer le fichier» étaient ouvertes en même temps. Il ne semble pas important de savoir comment je déclenche le téléchargement - clique sur < a> qui pointent vers une url, formulaire POSTs qui ciblent une iframe, demande xhttp suivie de a.href = window.URL.createObjectURL (xttp.response). Cela n'a pas d'importance si je le fais par programme, ou cliquez manuellement sur les liens ou les boutons. Les types de fichiers, les noms de fichiers et le contenu des fichiers n'ont pas d'importance.

Chaque approche que j'ai essayé a fonctionné dans firefox. Les accrochages se produisent en chrome. Essayé sur Ubuntu 14.04 et 16.04, 64 bits, chrome à jour.

Je ne vois que deux options pour le moment. Demandez à l'utilisateur de désactiver l'option "Demander où enregistrer chaque fois". Cela fonctionne, mais il n'est pas idéal de se fier à l'utilisateur pour lire les instructions ou lui demander de modifier ses paramètres.

L'autre est d'oublier tout cela, et d'offrir un zip, qui est aussi un travail supplémentaire pour moi, et pour l'utilisateur aussi bien.

Je ne crois pas qu'il existe un moyen de détecter quand une boîte de dialogue est ouverte ou fermée, corrigez-moi si je me trompe.

Pensées?

+0

Je crois que c'était un bug dans le chrome lui-même, et il est maintenant corrigé. J'ai déjà essayé de générer deux clics sur un lien de téléchargement sur n'importe quel site, et cela arriverait (donc ce n'était pas un problème dans mon code). Ça ne le fait plus. –

Répondre

1

On dirait que vous avez une boucle infinie dans votre script. Essayez le débogage étape par étape.

+0

Essayez de lire ce que j'ai écrit phrase par phrase. –