Page 1 sur 1
Récupérer valeur dans une Class
Posté : 28 mai 2020, 16:57
par Sylvain.P
Bonjour,
Je souhaite récupérer une valeur qui représente le nombre total de slides du diaporama (valeur entourée en rouge sur la capture d'écran ci-dessous).

- Slide_1.png (38.47 Kio) Vu 12132 fois
En inspectant la page, j'ai vu que la valeur était stockée dans :

- Slide_2.png (8.66 Kio) Vu 12132 fois
J'ai essayé, grâce à console.log dans un premier temps, de récupérer cette valeur mais en vain.
Le mieux que j'ai pu avoir, c'est avec :
Code : Tout sélectionner
console.log( document.getElementsByClassName('progTxtTotal'));
Qui me renvoie, en autres, ce que l'on voit ci-dessous :

- Slide_3.png (17.12 Kio) Vu 12132 fois
Dans la liste, il y a bien plusieurs lignes où on voit le 5 apparaître mais je n'arrive pas à le récupérer.
J'ai essayé :
Code : Tout sélectionner
console.log( document.getElementsByClassName('progTxtTotal').textContent);
ou
Code : Tout sélectionner
console.log( document.getElementsByClassName('progTxtTotal').innerText);
et bien d'autres (avec element., ById,...) mais rien n'a fonctionné...
Merci d'avance pour votre aide.
Sylvain.
Re: Récupérer valeur dans une Class
Posté : 28 mai 2020, 18:30
par webmaster
Bonjour,
Il faut savoir que getElementsByClassName retourne un tableau d'éléments
https://www.toutjavascript.com/referenc ... ssname.php
Donc, il faut prendre le 1er element :
Re: Récupérer valeur dans une Class
Posté : 30 mai 2020, 13:48
par Sylvain.P
Bonjour et merci pour votre réponse.
J'ai une dernière requête afin de finaliser mon projet.
J'essaye de détourner le logiciel que j'utilise (qui de base n'a pas cette fonctionnalité) afin de pouvoir paramétrer dans le fichier JS un temps différent par diapo.
J’avais l’idée de détourner un élément lors de l’édition des diapo dans le logiciel (scenari) pour y stocker le temps afin de pouvoir le récupérer dans le fichier root.js à l’image des numéros de diapo et du nombre total de diapo.
Est ce que c’est possible ? En le mettant dans un mot clé, une balise, un titre… ?
Merci d'avance.
Sylvain.
Re: Récupérer valeur dans une Class
Posté : 03 juin 2020, 13:20
par webmaster
Bonjour,
On peut enregistrer des informations dans une balise avec les attributs data-XXX
L'objet dataset permet d'y accéder facilement
https://www.toutjavascript.com/referenc ... ataset.php
Je pense que c'est la meilleure solution pour améliorer ce script.
Re: Récupérer valeur dans une Class
Posté : 04 juin 2020, 09:42
par Sylvain.P
Bonjour et merci pour votre réponse.
De ce que j'ai compris, il faut que j'édite une balise pour y ajouter le data-XXX.
Le problème c'est que je n'y ai pas accès.
J'ai cette interface dans le logiciel :

- Capture_1.PNG (47.89 Kio) Vu 12080 fois
Qui affiche comme rendu :

- Capture_2.PNG (26.44 Kio) Vu 12080 fois
Mon idée était de mettre le temps de mon slide à la place du titre de la question qui ne me sert pas et de pouvoir le récupérer dans le JS.
J'ai essayé plein de trucs en identifiant les class, les balises... qui se rapportaient au titre mais il ne me renvoi jamais son contenu.

- Capture_3.png (86.52 Kio) Vu 12080 fois
J'ai également essayé de modifier directement le fichier de sortie en rajoutant à la main le data-XXX dans la balise span avec Notepad++, au moins pour voir si ça marchait mais il me renvoie ça : " Uncaught TypeError : Cannot read property 'dataset' of null.
J'ai également essayé avec les mots clés (où j'arrive à récupérer la chaîne de caractères de tous les mots clés mis à la suite, séparés par une virgule grâce à document.getElementsByName('keywords')[0].content)), mais ça serait dans tous les cas moins pratique pour la rédaction du diaporama...
Merci d'avance.
Sylvain.
Re: Récupérer valeur dans une Class
Posté : 05 juin 2020, 13:55
par webmaster
Bonjour
Le message "Cannot read property 'dataset' of null" signifie que la récupération de l'élément n'est pas bonne
La difficulté ici est de trouver la bonne requete pour tomber sur l'élément.
Et comme il n'y a pas d'identifiant dans les slides, cela implique de parcourir tous les divs et de chercher celui qui est affiché avec opacity = 1
Cela risque d'être compliqué.
Peut etre existe-t-il un plugin pour ce logiciel ?
Re: Récupérer valeur dans une Class
Posté : 05 juin 2020, 16:16
par Sylvain.P
Merci pour votre réponse.
Je viens de poser la question sur le forum du logiciel.
Re: Récupérer valeur dans une Class
Posté : 18 juin 2020, 15:05
par Sylvain.P
Bonjour,
N'ayant aucune réponse sur le forum du logiciel, j'ai continué de chercher et je me suis aperçu que c'était un deuxième fichier .js (dans le même dossier) qui me permettait d’accéder au contenu des diapo.
Il y a le fichier root.js qui gère, d’après ce que j'ai compris, "la structure générale" du diaporama : titre du diapo, les fonctions qui permettent de faire défiler les diapo, les boutons, le compte à rebours... et un fichier slide.js. Dans celui-ci, je suis arrivé à récupérer le contenu de mon titre (en utilisant : document.querySelectorAll('h2')[0].innerText).
Mais j'aimerais maintenant me servir de ce contenu dans le fichier root.js et c'est là que je sèche... J'ai essayé de chercher comment faire mais tout ce que j'ai trouvé ne fonctionne pas.
Merci d’avance.
Sylvain.
Edit : Finalement, je me suis débrouillé en détournant la balise "mots clés", cela fonctionne.