Les signets provoquent des erreurs de syntaxe dans le code Javascript
P粉127901279
P粉127901279 2024-04-01 16:16:44
0
1
409

(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粉127901279
P粉127901279

répondre à tous(1)
P粉744691205

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!