Aidez-moi à situer le problème..

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
txlr147
Messages : 1
Enregistré le : 13 mars 2023, 21:28

Aidez-moi à situer le problème..

Message par txlr147 » 13 mars 2023, 21:40

Hello,

Je suis en train de codé (avec l'aide de chatGPT) une extension Chrome qui me permet simplement de télécharger les pages HTML des liens contenus dans une page.
Le prompt que je lui est fourni est le suivant : "Fournit-moi la démarche et tout les scripts d'une extension Chrome pour le process suivant : "Ouvrir le premier lien HTML de la page dans un nouvel onglet, faire défiler ce nouvel onglet en bas de page, "enregistrer-sous" la page HTML de ce nouvelle onglet, attendre la fin du téléchargement puis fermer cet onglet, ouvrir le second lien HTML de la page dans un nouvel onglet, faire défiler ce nouvel onglet en bas de page, "enregistrer-sous" la page HTML de ce nouvelle onglet, attendre la fin du téléchargement puis fermer cet onglet, ouvrir le troisième lien HTML de la page dans un nouvel onglet, faire défiler ce nouvel onglet en bas de page, "enregistrer-sous" la page HTML de ce nouvelle onglet, attendre la fin du téléchargement puis fermer cet onglet, ouvrir le quatrième lien HTML de la page dans un nouvel onglet, ect... jusqu'à ce qu'il n'y ait plus de lien sur la page.""

Après avoir suivi les étapes de création des fichiers et l'ajout des codes à ceux-ci, j'ai ajouté cette extensions à Chrome. L'extension est bien présente mais rien ne se passe lorsque je clique sur "Lancer le téléchargement" Pouvez-vous m'aider ?

Voici les codes en questions:

manifest.json -->

Code : Tout sélectionner

{
  "manifest_version": 2,
  "name": "Extension de téléchargement de page HTML",
  "version": "1.0",
  "description": "Télécharge les pages HTML de tous les liens sur la page actuelle",
  "browser_action": {
       "default_popup": "popup.html",
    "default_title": "Lancer le téléchargement"
  },
  "permissions": ["tabs", "downloads"]
}
popup.html -->

Code : Tout sélectionner

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Lancer le téléchargement</title>
    <script src="popup.js"></script>
  </head>
  <body>
    <button id="download-button">Lancer le téléchargement</button>
  </body>
</html>
popup.js -->

Code : Tout sélectionner

document.addEventListener('DOMContentLoaded', function() {
  document.querySelector('#download-button').addEventListener('click', downloadHTMLPages);
});

function downloadHTMLPages() {
  chrome.tabs.query({currentWindow: true}, function(tabs) {
    var tabCount = 0;
    tabs.forEach(function(tab) {
      if (tab.url.toLowerCase().indexOf('http') === 0) {
        tabCount++;
        chrome.tabs.create({url: tab.url}, function(newTab) {
          chrome.downloads.download({url: newTab.url, filename: 'page_' + tabCount + '.html'}, function(downloadId) {
            var interval = setInterval(function() {
              chrome.downloads.search({id: downloadId}, function(downloads) {
                if (downloads[0].state === 'complete') {
                  clearInterval(interval);
                  chrome.tabs.remove(newTab.id);
                  if (tabCount === tabs.length) {
                    alert('Téléchargement terminé.');
                  }
                }
              });
            }, 1000);
          });
          chrome.tabs.executeScript(newTab.id, {code: "window.scrollTo(0, document.body.scrollHeight);"});
        });
      }
    });
  });
}

document.getElementById("download-button").addEventListener("click", function() {
    // Code de téléchargement ici
});

Avatar du membre
webmaster
Administrateur du site
Messages : 563
Enregistré le : 28 févr. 2017, 15:19

Re: Aidez-moi à situer le problème..

Message par webmaster » 14 mars 2023, 19:45

Bonjour

Si rien ne se passe, il faut regarder dans la console l'erreur qui survient.
La console s'ouvre avec un clic droit sur l'icone de l'extension puis "inspecter le popup"
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Répondre