Fonctions et variables en Javascript
Résolu/Fermé
Kap_
Messages postés
12
Date d'inscription
samedi 1 février 2020
Statut
Membre
Dernière intervention
4 juin 2020
-
16 févr. 2020 à 12:07
de1irium Messages postés 9 Date d'inscription dimanche 19 janvier 2020 Statut Membre Dernière intervention 18 février 2020 - 18 févr. 2020 à 20:46
de1irium Messages postés 9 Date d'inscription dimanche 19 janvier 2020 Statut Membre Dernière intervention 18 février 2020 - 18 févr. 2020 à 20:46
A voir également:
- Fonctions et variables en Javascript
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Telecharger javascript - Télécharger - Langages
- Javascript round ✓ - Forum Javascript
- Fonction si et - Guide
- Table de multiplication javascript ✓ - Forum Javascript
2 réponses
de1irium
Messages postés
9
Date d'inscription
dimanche 19 janvier 2020
Statut
Membre
Dernière intervention
18 février 2020
2
17 févr. 2020 à 15:54
17 févr. 2020 à 15:54
C'est normal, function (tabs) est le callback, il sera exécuté dès lors que chrome.tabs.query aura retourné (on dit de cetter dernière qu'elle est asynchrone). Pendant ce temps, JavaScript ne reste pas les bras croisés et passe au 2d alert(adress);, lui qui d'ailleurs vaudra toujours undefined ; il faut comprendre que var adress; que tu déclares au tout début et var adress = tabs[0].url; sont 2 variables complètement différentes, la 1re est globale, la 2de est propre à function (tabs) (on parle de portée locale). Si tu veux plutôt modifier la valeur de la variable globale pour qu'elle s'affiche dans le 2d alert, tu dois simplement lui assigner la nouvelle valeur :
adress = tabs[0].url; // pas de var ; on modifie la variable adress déjà existante
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
16 févr. 2020 à 15:01
16 févr. 2020 à 15:01
Bonjour,
tu parles du quel
vu que tu en a deux dans ton code ?
PS: A l'avenir, merci d'utiliser correctement les balises de code en y précisant le langage afin que l'on ait la coloration syntaxique, l'indentation et les numéros de lignes.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
tu parles du quel
alert(adress);
vu que tu en a deux dans ton code ?
PS: A l'avenir, merci d'utiliser correctement les balises de code en y précisant le langage afin que l'on ait la coloration syntaxique, l'indentation et les numéros de lignes.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
Kap_
Messages postés
12
Date d'inscription
samedi 1 février 2020
Statut
Membre
Dernière intervention
4 juin 2020
16 févr. 2020 à 15:10
16 févr. 2020 à 15:10
En fait, mon deuxième
PS : je n'étais pas au courant de cette possibilité de mettre le langage dans les balises de code que j'utiliserais bien à l'avenir
alert(adress);passe avant le premier, ce que je ne comprends absolument pas et que j 'aimerai bien résoudre
PS : je n'étais pas au courant de cette possibilité de mettre le langage dans les balises de code que j'utiliserais bien à l'avenir
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
>
Kap_
Messages postés
12
Date d'inscription
samedi 1 février 2020
Statut
Membre
Dernière intervention
4 juin 2020
16 févr. 2020 à 15:34
16 févr. 2020 à 15:34
Je n'ai pas vérifié, mais je pense que les fonctions sont asynchrones.
Il faut donc placer les codes qui doivent s'enchainer de façon plus imbriquer ou utiliser les méthodes (si elles existent) pour s'assurer que la fonction est terminée avant de passer à la suivante.
Tout doit être indiqué dans la doc officielle (que je t'avais déjà donné)
Il faut donc placer les codes qui doivent s'enchainer de façon plus imbriquer ou utiliser les méthodes (si elles existent) pour s'assurer que la fonction est terminée avant de passer à la suivante.
Tout doit être indiqué dans la doc officielle (que je t'avais déjà donné)
Modifié le 17 févr. 2020 à 16:35
let dld = document.getElementById('Button'); var adress; dld.onclick = function(element){ while (adress === undefined) { chrome.tabs.query({ 'active': true, 'currentWindow': true }, function (tabs) { adress = tabs[0].url; } ); } alert(adress); chrome.tabs.create( { 'url': 'https://google.com', 'pinned':true, 'active':false }, /*function(tab){ alert("tab created"); }*/ ); };En tout cas merci de m'aider
18 févr. 2020 à 16:04
function (tabs) { adress = tabs[0].url; alert(adress); }Si rien ne s'affiche, c'est que chrome.tabs.query ne retourne pas, vérifiez alors la console18 févr. 2020 à 18:51
Voici où j'en suis dans mon programme :
let dld = document.getElementById('Button'); var address; dld.onclick = function(element){ chrome.tabs.query( { 'active': true, 'currentWindow': true }, function (tabs) { address = tabs[0].url; alert(address); } ); chrome.tabs.create( { 'url': 'https://google.com', 'pinned':true, 'active':false }, /*function(tab){ alert("tab created"); }*/ ); };18 févr. 2020 à 20:46
chrome.tabs.query( { 'active': true, 'currentWindow': true }, faireQQchose); var faireQQchose = function(tabs) { // Dès que chrome.tabs.query a exécuté, c'est fonction est appelée address = tabs[0].url; alert(address); // placez-y ce que vous voulez ; le script au complet si ça vous plaît