Instructions non executées après une boucle ou une condition if

Par snipex x, il y a 7 ans


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

SimonAndGarfunkel, il y a 7 ans

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, il y a 7 ans

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, il y a 7 ans

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