show_hide un div: problème avec retour
Bonjour!
Un second petit problème JS, qui n'en est pas vraiment un. Je m'explique: j'aimerais afficher/cacher un bout de formulaire avec JS avec un checkbox.
Facile, tout marche nickel SAUF sous IE lorsque je fais "retour". Voici les éléments clés:
Ma fonction (que j'appelle avec le checkbox)
Code:
1 2 3 4 5 6 7
| function show_hide(layer) {
layer = document.getElementById(layer);
if(document.getElementById('address').checked ) {
layer.style.display = "block";
}else{
layer.style.display = "none";
} |
et en bas de page (pour afficher/cacher au chargement) [pas d'accès au tag body onload...]
Code:
1 2 3 4 5
| <SCRIPT LANGUAGE="JavaScript">
<!-- HIDE THE SCRIPT FROM OTHER BROWSERS
show_hide('div_address');
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT> |
Avec FF ça passe nickel, mais avec IE un "retour" me cache le DIV! (même si la checkbox est cochée (et le reste après le retour)
Et en fait si j'ai:
Code:
1 2 3 4
| <script for=window event=onload language="JScript">
show_hide('div_address');
</script>
ça passe, |
mais c'est pas une solution très sexy il me semble (EDIT: surtout que ça cause des problèmes sur ma page :( plus marche pas avec Netscape)
Re: show_hide un div: problème avec retour
Citation:
Envoyé par -DeN-
Avec FF ça passe nickel, mais avec IE un "retour" me cache le DIV! (même si la checkbox est cochée (et le reste après le retour)
Qu'est ce que tu appelles un retour????
Sinon, pour définir le fait que les champs sont cachés par défaut, je conseille de le mettre directement dans le style de ton div:
Code:
1 2
|
<div id='...' style='display:none'> |
Et tant pis pour les gens qui ont désactivé le Javascript.
Sinon, tu peux attacher l'évenement à la page de façon propre avec attachEvent/addEventListener.
Enfin, tu peux utiliser la propriété defer de IE (attribut à mettre dans ta balise script) pour que le script ne soit initialisé qu'après le chargement complet de la page).
Mais la première solution est la meilleure :)