Document.getElementById('mess').style.display = 'block' ?

Résolu/Fermé
LionelR. Messages postés 6 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 13 mai 2023 - 10 févr. 2023 à 17:47
LionelR. Messages postés 6 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 13 mai 2023 - 11 févr. 2023 à 14:54

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

A voir également:

4 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
10 févr. 2023 à 17:51

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 ?


0
LionelR. Messages postés 6 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 13 mai 2023
10 févr. 2023 à 17:58

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é.

0
LionelR. Messages postés 6 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 13 mai 2023
11 févr. 2023 à 09:56

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 ?

0
LionelR. Messages postés 6 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 13 mai 2023
Modifié le 11 févr. 2023 à 14:54

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.

0