PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 24 → Changer image d'un menu par programmation
Changer image d'un menu par programmation
Débuté par Zack, 14 fév. 2019 17:16 - 10 réponses
Membre enregistré
107 messages
Posté le 14 février 2019 - 17:16
Bonjour;
J'aimerais personnaliser l'image de chargement d'une page de mon site dynamique et l’incruster dans mon menu.

Je suis capable d'ajouter l'image dans l'IHM de mon menu, mais comment le faire par code ?

Je voudrais le mettre dans mon menu car mon client voit instantanément que l'opération est en cours de traitement.
et voici la classe, ce que je vois dans la fenêtre de déboguage de Firefox

l'alias de mon menu est id="A267

.A267-sty10001 {
background-image: url(/CAMION_WEB/res/ANI_Indicator.gif);

j'ai tenté ..image = "" dans le code WL mais sans succès. semblerait que ..image ne fonctionne pas sur tous les champs.

Je cherche le moyen le plus facile de faire cette tâche.

Merci
Membre enregistré
22 messages
Posté le 23 février 2019 - 18:14
Bonjour,
Peux-tu prendre une capture d'écran de ton menu pour que je puisse voir ce que tu souhaites faire ? J'ai peut-être une solution si c'est bien ce que je pense ;)
Membre enregistré
107 messages
Posté le 25 février 2019 - 06:46
Oui voilà











J'aimerais faire apparaitre l'image de fond et la faire disparaitre une fois une traitement complété.
Membre enregistré
22 messages
Posté le 25 février 2019 - 10:54
Insères ce morceau de code dans le libellé HTML de ton option de menu (remplace la propriété "src" par le chemin de ton image de chargement et le terme "NomDeTonOption" par le nom de l'option (sans le terme "OPT", sachant que tu peux mettre ce que tu veux mais que tu doives t'y retrouver.)

<img id="NomDeTonOption_Chargement" src="/ANI_Indicator32.gif" style="padding-left:10px ; visibility:hidden">

Ensuite, en code navigateur, pour afficher l'image de chargement :
JSPropriété("NomDeTonOption_Chargement", "style.visibility") = "visible"


Pour la masquer :
JSPropriété("NomDeTonOption_Chargement", "style.visibility") = "hidden"


Exemple avec l'option "Commandes" :
Code à ajouter dans le libellé HTML :
<img id="Commandes_Chargement" src="/ANI_Indicator32.gif" style="padding-left:10px ; visibility:hidden">

Ensuite, en code navigateur, pour afficher l'image de chargement :
JSPropriété("Commandes_Chargement", "style.visibility") = "visible"


Pour la masquer :
JSPropriété("Commandes_Chargement", "style.visibility") = "hidden"
Message modifié, 25 février 2019 - 10:57
Membre enregistré
107 messages
Posté le 25 février 2019 - 16:14
Wow merci Alpha, je n'y avais pas pensé.

mais j'ai un problème, j'affiche bien mon image dans mon menu mais lors de la sélection de mon menu côté navigateur j'ai ce code

JSPropriété("idcmdloading", "style.visibility") = "visible"

Je reçois cette erreur dans le navigateur chrome
Type Error: eval(...). Visibilité vSetValeur is not a function

Après quelques recherches je pourrais également utiliser cette syntaxe
JSPropriété("document.getElementById('idCmdLoading').style","visibility")="visible"


mais ne fonctionne pas plus. la balise image est pourtant là et si je la mets visible par défaut directement en html dans mon menu je la voie s'animer sans problème.
Membre enregistré
22 messages
Posté le 25 février 2019 - 17:16
Re-bonjour Zack,
Est-ce que dans la console développeurs, la commande
document.getElementById('idCmdLoading').style.visibility = "visible"


retourne une erreur ?
Membre enregistré
107 messages
Posté le 26 février 2019 - 00:23
Bonjour,

Aucune erreur, il retourne visible et l'animation apparait dans mon menu.....

pourtant dans ma selection code WL navigateur de mon menu.

JSPropriété("idCmdLoading", "style.visibility") = "visible" me retourne l'erreur mentionnée plusieurs tôt.

Par contre si je passe ma procédure sélection de mon menu en JS directement et je mets ce code

document.getElementById('idCmdLoading').style.visibility = "visible"

alors ça passe.... donc Il y a truc qui ne fonctionne pas avec JSPropriété mais je veux pas passer ma procedure en JS car j'ai du code navigateur que j'utilise.
Message modifié, 26 février 2019 - 00:32
Membre enregistré
281 messages
Posté le 13 mars 2019 - 13:55
Bonjour,

Et si tu te passais de JSPropriété ????

Je crois qu'on peut faire en navigateur :

Externe document
document.getElementById("idCmdLoading").style.visibility = "visible"

ou bien

Externe document
elmDyn est objet dynamique

elmDyn = document.getElementById("idCmdLoading")
elmDyn.style.visibility = "visible"

Encore 2 choses :
Au début tu dis : l'alias de mon menu est id="A267 Et ensuite : "idCmdLoading"
Attention aux ..ALIAS, parfois ils ont des suffixes supplémentaires et un document.getElementById("idCmdLoading") peu correspondre à un <div> parent par exemple. L'objet lui, peut être un <table> enfant.

Courage, bon dev et A+
Membre enregistré
107 messages
Posté le 14 mars 2019 - 20:23
Fonctionne nikel, merci Tony, je connaissais pas Externe coté navigateur.
Membre enregistré
22 messages
Posté le 14 mars 2019 - 22:03
Je ne connaissais pas non plus. Merci de la découverte !
Posté le 15 mars 2019 - 11:39
Alpha a formulé la demande :
Je ne connaissais pas non plus. Merci de la découverte !

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com


désolé je ne comprends pas le fil de ce post
manifestement votre réponse ne s'attache pas à ce post
Je ne vois pas de Tony, ni de EXTERNE