Maison  >  Questions et réponses  >  le corps du texte

Les signets provoquent des erreurs de syntaxe dans le code Javascript

(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)

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 ?

P粉127901279P粉127901279182 Il y a quelques jours414

répondre à tous(1)je répondrai

  • P粉744691205

    P粉7446912052024-04-02 10:34:45

    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.

    répondre
    0
  • Annulerrépondre