Document.getElementById('mess').style.display = 'block' ?
RésoluLionelR. Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je ne suis pas expert en js mais je me débrouille basiquement. Très basiquement, certes, mais c'est mieux que rien...
Ma question est : pourquoi, dans un script qui fonctionne, ceci refuse obstinément de s'exécuter :
document.getElementById('mess').style.display = 'block';
Précisions :
1 - le <div> a bien le bon identifiant ("mess"),
2 - la règle css du <div> en question est : display: none.
Par défaut, je ne veux pas en effet que ce bloc soit affiché. Un test (avec kouki) permet de décider s'il doit l'être. Tout va bien, jusqu'à la ligne sus-mentionnée où rien ne se passe, le <div> reste aux abonnés absents.
Pour info, si je remplace dans le script la ligne foireuse par quelque chose comme : alert('OK'), le message s'affiche bien. Donc le déroulement de script n'est pas en cause, juste l'affichage qui refuse de passer de 'none' à 'block'.
Qui a une idée? Merci par avance.
Windows / Chrome 108.0.0.0
- Document getelementbyid style
- Block breaker - Accueil - Services en ligne
- Code block - Télécharger - Langages
- Peer block - Télécharger - Pare-feu
- Usb block - Télécharger - Pare-feu
- Block pub youtube - Accueil - Streaming
4 réponses
Bonjour
As-tu bien placé ton script à la fin de ta page avant la fermeture du body ?
Peux-tu nous partager le code complet de ta page HTML ?
Bonjour.
Le script est (était) dans l'en-tête. Effectivement, déplacé en fin de page, ça à l'air de rouler.
Merci, je vais pousser les tests pour m'assurer que ça fonctionne en temps réel – je veux dire, avec kouki et tout le bazar...
Merci pour la réponse (rapide), à plus, je vous dirai si tout s'est bien passé.
Re.
Bon, ça fonctionne pile poil. Le kouki (testé sur un serveur), ou plutôt l'absence dudit kouki, provoque l'affichage de la fenêtre – qui est masquée par défaut. Si le visiteur ferme la fenêtre en cliquant sur la zoulie croix, la fenêtre est fermée (évidemment) et ledit kouki est généré. À l'affichage de chaque page, un test est effectué pour vérifier la présence du kouki. S'il est bien là, l'affichage reste sur « display: none ».
Autrement dit, la fenêtre s'affiche sur toutes les pages tant que le visiteur ne l'a pas fermée d'un clic. Une fois que c'est fait, elle ne s'affiche plus. C'est bien ce que je voulais.
J'ai mis la durée de vie du kouki à 900 secondes, soit 1/4 d'heure. C'est modifiable, œuf corse.
Puis je me suis dit que ce pourrait être bien de faire apparaître la fenêtre du message avec un mimimum de style... Du coup, si je remplace le « display: block » par ceci :
Document.getElementById("mess").className = "aff_mess";
ça devrait marcher. Bien sûr, la classe en question, appelée ici « aff_mess », doit contenir le code CSS nécessaire pour afficher la fenêtre identifiée par « mess ».
Mais là, ça recommence ; même avec le script à la fin, la classe ne semble pas appliquée au <div>. Pour tester, si je mets dans cette classe juste « display: block », la fenêtre devrait apparaître. Mais nib...
Quid ?
C'est tout bon, j'ai trouvé une bricole en animation js.
Je positionne la fenêtre sous l'écran. Le script l'affiche avec display: block. Elle est donc cachée mais la fonction idoine la fait doucement remonter. Je calcule le point d'arrêt avec la hauteur de la fenêtre (window.innerHeight).
Merci, tout ça n'aurait rien donné sans l'astuce de départ.