2017-09-22 1 views
-1

Je souhaite créer une extension Chrome qui permet à l'utilisateur de télécharger du texte capturé via une ou plusieurs expressions régulières. Pour apprendre à créer une telle extension, j'ai téléchargé et installé l'un des Sample Extensions de Chrome: celui intitulé Download Selected Links. L'icône de l'extension apparaît dans mon navigateur, et l'expression régulière semble fonctionner correctement (la fenêtre contextuelle montre une longue liste de liens qui semblent clairement avoir été effacés de l'onglet que je suis), mais lorsque je clique sur le bouton «Télécharger tout», la fenêtre pop-up se ferme et aucun des liens que j'ai sélectionnés n'est téléchargé.L'exemple d'extension 'Télécharger les liens sélectionnés' ne télécharge pas les liens

enter image description here

+1

Vous aurez besoin d'utiliser [debugging] (https://developer.chrome.com/extensions/tut_debugging) pour vous donner une idée de ce qui ne va pas. – Xan

Répondre

1

j'ai pu le faire fonctionner en supprimant la ligne de code de popup.js qui appelle window.close():

// Download all visible checked links. 
function downloadCheckedLinks() { 
    for (var i = 0; i < visibleLinks.length; ++i) { 
    if (document.getElementById('check' + i).checked) { 
     chrome.downloads.download({url: visibleLinks[i]}, 
              function(id) { 
     }); 
    } 
    } 
    window.close(); // <-- Delete this line. 
} 

La fenêtre pop-up restera ouvert après avoir cliqué sur le « Télécharger Tous les boutons, et le téléchargement devrait commencer après une fraction de seconde. Ma meilleure supposition est que la fermeture de la pop-up avec window.close() peut avoir désactivé une autorisation qui est nécessaire pour le téléchargement pour commencer. J'ai effectué une expérience dans laquelle toutes les URL étaient sélectionnées (une longue liste, peut-être 50 ou plus), et je cliquais sur «Télécharger tout», puis je les cliquais pour les fermer, et les cinq premières pages téléchargées, mais pas plus.

Je suis également venu à travers ce qui semble-utile SO question: How to download a file via a Chrome Content Script? ... mais je n'ai pas pu obtenir le travail de la méthode de passage de messages (envoyer un message à un background.html lui demandant de télécharger les URL spécifiées).

+2

Vous pouvez simplement appeler window.close dans le rappel du dernier élément traité. – wOxxOm

+2

La fermeture du popup décharge la page; par conséquent, abandonner tout le code mis en file d'attente pour l'exécution. Si vous ne parvenez pas à faire fonctionner Messaging, posez une nouvelle question. – Xan