CODE
<script type="text/javascript">
<!--Merci à Dustin Diaz
function switchMenu(obj) {
var el = document.getElementById(obj);
if ( el.style.display != "none" ) {
el.style.display = 'none';
}
else {
el.style.display = '';
}
}
//-->
</script>
<!--Merci à Dustin Diaz
function switchMenu(obj) {
var el = document.getElementById(obj);
if ( el.style.display != "none" ) {
el.style.display = 'none';
}
else {
el.style.display = '';
}
}
//-->
</script>
Le remerciement est de moi. On appelle ensuite le code de la façon suivante :
CODE
<a onclick="switchMenu('poster-message');">écrire un message</a>
où poster-message indique la valeur de l'attribut id de la balise dont le contenu doit être affiché ou masqué.
Cependant, il se pose encore un problème qui, tant qu'il ne sera pas résolu, m'empêchera d'utiliser ce script sur mon site : la compatibilité avec les navigateurs où Javascript est désactivé ou n'est pas supporté.
Je n'ai pas trouvé comment vérifier si Javascript est désactivé, mais je pense avoir une idée élégante, et j'aurais besoin de vous pour la finaliser.
Je précise au passage que les possibilités offertes par les balises <noscript> ne m'ont pas convenues.
Ma solution est simple : en général, par défaut, on cache le contenu, et lors d'un événement comme onclick on le fait apparaître. Il est caché au départ par du CSS comme style="display: none". Seulement si ce display none est appelé lui-même par du Javascript, alors une personne ayant désactivé Javascript verra la page entièrement dépliée, ce qui n'est franchement pas gênant.
Seulement je n'ai pas réussi à réaliser un tel script. J'ai bien tenté de faire des fonctions mais aucune n'a fonctionné. La seule solution que j'ai réussi à exploiter n'est pas reconnue par le W3C, car elle suppose que javascript ou document.write soit un attribut possible de balises comme <div> :
CODE
<div id="poster-message" document.write("style="display: none"");>
Pourriez-vous me proposer une alternative à cette solution qui ne vienne par troubler la validation de mon site selon la DTD XHTML 1.0 Strict? Merci d'avance.