DOCTYPE et document.body.scrollTop....
Dans la série, plus tu creuses moins tu trouves !
Mes questions précédentes ayant semble-il un peu énervé, je reviens humblement vers vous après avoir fouillé un peu partout et préparé un exemple complet.
génèse : Après m'etre aperçu que ce que j'avais ecrit (HTML+CSS+Javascript), fonctionnant parfaitement sous IE et Firefox, affichait le code de la page au lieu de celle-ci chez un ami equipé d'un Apple. J'avais repris la pioche pour valider mon code (http://validator.w3.org/). J'ai donc obtenu des pages validées mais qui ne fonctionnait plus à cause notamment d'affectation de valeur sans unité (...top=100 au lieu de de ... top=100+"px" ) MEA CULPA et merci pour votre aide.
Mon NOUVEAU problème :
d'abord un exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
<meta http-equiv="Content-script-type" content="text/javascript" >
<meta http-equiv="Content-style-type" content="text/css" >
<meta http-equiv="Content-language" content="fr" >
<title>essai page</title>
<script type="text/javascript">
var pfcie4 = (document.all)? true:false;
// affiche la position
function pos() {
if(pfcie4) { document.write(document.body.scrollTop); } else { document.write(window.pageYOffset); }
}
</script>
</head>
<body>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>texte<br>
<a href="#" onClick="pos()">clic</a>
</body>
</html> |
Evidemment c'est pas ce que l'on fait de plus utile comme page. Mais le probleme est le suivant :
- si on laisse la ligne Doctype IE affiche 0 pour la valeur document.body.scrollTop
-si on enleve le Doctype il donne la bonne valeur.
Firefox lui donne bien la valeur dans les 2 cas.
L'application réelle : Je surveille la valeur du scroll et déclenche une routine Javascript lorsque celle-ci change. comme la valeur de scroll n'est pas retournée avec IE... j'avance pas d'un iota.
Pour re-préciser ma démarche et eviter les tirs à vue :
- Je dois evidemment faire une grosse erreur (pour pas dire plus), ne m'incendiez pas !
- Je ne cherche pas à faire une usine à gaz... (je ne fais pas de blocage de clic droit, je ne force pas l'ouverture d'un lien dans une autre page, je ne suis pas le roi des popup...).
- Les pages fonctionnent même sans Javascript ou sans CSS activé...
mon raisonnement : si mes pages sont valides, elles ont plus de chance de s'afficher correctement sur un max de navigateur.
pour finir qu'est-ce que je fais de travers pour que "document.body.scrollTop" ne retourne pas la bonne valeur.
Pascal (futur ancien débutant)