Bonjour,

J'ai un soucis avec mon code :-(
Je développe une extension google chrome et j'ai des instructions qui ne se lancent pas.

Le code en entier

chrome.storage.local.get(['postcategorie'], function(result) {

    postinfo = result.postcategorie;
    telecharger=0;
    if(postinfo==null){telecharger=1;}
});

if(telecharger=1){
    const req = new XMLHttpRequest();
    req.open('GET', 'https://eu.community.samsung.com/t5/French/ct-p/fr', false); 
    req.send(null);

    if(req.status === 200){
        toutcat = [];
        explore = document.getElementById('visualise');
        explore.innerHTML=req.responseText;
        categorie = explore.getElementsByClassName('custom-discussions')[0].getElementsByTagName('figcaption');
        explore.innerHTML='';
        var content = document.getElementById("categorie");
        for(var i in categorie){
            typecat = categorie[i].firstElementChild.innerText;
            envoiecat = categorie[i].getElementsByTagName('small')[0].innerText;
            liencat = categorie[i].firstElementChild.href.split('t5/')[1];
            content.innerHTML += "<a class='linkcat' href='page_post_list.html?post="+liencat+"&nbrpage=0'><div class='catego shadow colorbackground'><span>"+typecat+"></span><button class='reponse'>"+envoiecat+"</button></div></a>";
            toutcat.push([typecat,liencat,envoiecat]);
        }
    }
    console.log(toutcat);
    chrome.storage.local.set({postcategorie: toutcat});
 }

Le code sans les choses qui marchent :

chrome.storage.local.get(['postcategorie'], function(result) {

    postinfo = result.postcategorie;
    telecharger=0;
    if(postinfo==null){telecharger=1;}
});

if(telecharger=1){

    if(xxx){
        toutcat = [];
        for(var i in categorie){toutcat.push([typecat,liencat,envoiecat]);
        }
    }
    console.log(toutcat);

}

ici, le console.log ne sort rien à lors que toutes les actions précédentes sont bien executées. Idem, le chrome.storage.local.set({postcategorie: toutcat ne fait rien :-(
Je pensais à une erreur de syntaxe mais j ai vérifié trois fois.
Quand je fais explore.innerHtml= machin, ca me genere des erreurs à cause d'url qui sont mauvaise mais le code d'après s execute quand meme !

Merci d avance et bonne journée

3 réponses


Bonjour snipex x,

J'ai l'impression que ton problème se trouve ici :

if(telecharger=1)

Tu ne testes pas que la variable telecharger soit égal à 1 mais tu lui affectes la valeur 1.

Ça devrait mieux fonctionner comme cela :

if(telecharger==1)

++

snipex x
Auteur

mince ! si bête ! Merci beaucoup je vais tester ça et je vous donne des nouvelles :-)
(comment accepte on une solution s'il vous plait, je suis sur téléphone)

snipex x
Auteur

Bonjour,

Je viens d essayer et le probleme ne venait pas de la :D
J ai remarqué une erreur dans la console qui apparait en amont:

Error in response to storage.get: TypeError: Cannot read property 'innerText' of undefined
    at Object.callback (chrome-extension://ogingkflkahpnfjallgkdefhelomcged/script_pages/page_post_categorie.js:18:46)
    at chrome-extension://ogingkflkahpnfjallgkdefhelomcged/script_pages/page_post_categorie.js:1:22

Et elle apparaissait lors de ma derniere etape de ma boucle fort. i prenait la valeur "length" pour la derniere iteration (je ne sais pas du tout pourquoi) donc j ai remplace var i in categorie par i=0;i<categorie.length;i++ et ça marche !

Bonne journée