(Contexte : j'ai essayé d'utiliser le code JS trouvé ici https://github.com/refined-github/refined-github/issues/1892 mais en utilisant des signets pour charger tous les commentaires dans le PR GitHub) p>
J'ai le code JS suivant qui fonctionne correctement lorsqu'il est collé dans la console (Chrome).
(() => { let tryAttempts = 0; function loadComments () { let needRescheduling = false; const buttons = document.querySelectorAll(".ajax-pagination-btn[data-disable-with]") buttons.forEach((button) => { button.click(); needRescheduling = true; tryAttempts = 0; }) if (needRescheduling || tryAttempts < 5) { if (needRescheduling) { console.log("Loading comments.") } else { console.log("Looking for more to load."); } tryAttempts++; setTimeout(loadComments, 500) } else { console.log("All comments loaded."); const resolvedButtons = document.querySelectorAll(".js-toggle-outdated-comments[data-view-component]"); resolvedButtons.forEach((button) => { button.click(); }) console.log("All resolved comments loaded.") } } loadComments(); })();
Ensuite, j'ai essayé de le mettre en favoris dans Chrome pour le convertir en
javascript: (() => { let tryAttempts = 0; function loadComments () { let needRescheduling = false; const buttons = document.querySelectorAll(".ajax-pagination-btn[data-disable-with]") buttons.forEach((button) => { button.click(); needRescheduling = true; tryAttempts = 0; }) if (needRescheduling || tryAttempts < 5) { if (needRescheduling) { console.log("Loading comments.") } else { console.log("Looking for more to load."); } tryAttempts++; setTimeout(loadComments, 500) } else { console.log("All comments loaded."); const resolvedButtons = document.querySelectorAll(".js-toggle-outdated-comments[data-view-component]"); resolvedButtons.forEach((button) => { button.click(); }) console.log("All resolved comments loaded.") } } loadComments();})();
Cela produira une erreur de syntaxe. Uncaught SyntaxError:意外的标识符“按钮”
Qu'est-ce que je fais de mal ici ?
Votre code dépend de insertion automatique d'un point-virgule.
Autrement dit, il y a des endroits dans votre code qui utilisent des sauts de ligne au lieu de points-virgules.
Quelle que soit la méthode que vous utilisez pour le convertir en bookmarklet, ces nouvelles lignes seront supprimées, mais vous ne pourrez pas les remplacer par des points-virgules.
Vous devez ajouter le point-virgule manuellement ou le corriger pour que le point-virgule soit inséré automatiquement.