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

Résolu
LionelR. Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
LionelR. 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

A voir également:

4 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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   Statut Membre Dernière intervention  
 

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   Statut Membre Dernière intervention  
 

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   Statut Membre Dernière intervention  
 

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