La solution décrite à la fin de cette question (vérification de la présence de document.scrollingElement
ou de se rabattre sur document.body
) ne fonctionnera pas sous IE, car il ne prend pas en charge l'application document.scrollingElement
( docs ), et dans IE, l'élément de défilement est l'élément HTML.
Je suggérerais donc qu'une meilleure solution pour cela serait quelque chose du genre ;
var scrollNode = document.scrollingElement || document.documentElement;
Ce qui devrait fonctionner pour tous les navigateurs modernes.
À titre d'anecdote, il est intéressant de considérer que la scrollingElement
semble avoir été ajoutée dans l'unique but de faire en sorte que nous Ne le fais pas. ont besoin de contrôles/rétrobalances pour obtenir l'élément de défilement racine, mais en raison d'autres incompatibilités entre navigateurs, nous avons toujours besoin d'un contrôle/rétrobalance afin d'utiliser scrollingElement
.
Le développement web n'est-il pas amusant ?
7 votes
Est-ce une question ? Cela ressemble plus à une réponse
6 votes
Il n'y a rien de mal à poster une question à laquelle on a répondu soi-même. Veuillez la réécrire sous forme de question et y répondre vous-même.
0 votes
Oui, c'est une question à réponse automatique, car nous prévoyons que certains auteurs de javascript seront confrontés à ce problème et nous voulions que les conseils soient clairs sur les sites où ils cherchent fréquemment des réponses. J'ai modifié le format pour qu'il ressemble plus à une question.
7 votes
Bonjour, Dave, et bienvenue sur Stack Overflow. Votre question et votre réponse ont l'air bien, mais pourriez-vous s'il vous plaît poster votre solution comme une réponse séparée, pas dans la question ? Voir "Je peux répondre à ma propre question ?" dans le centre d'aide pour plus de détails. Merci !
0 votes
@AndrewT. J'ai fait marche arrière, de sorte que l'information est au moins là jusqu'à ce que quelqu'un ait le temps de la mettre dans une réponse appropriée (cela est mentionné dans les rapports de bogue du chat et à d'autres endroits, ce qui attire un peu l'attention).
0 votes
Attendez, cela ne va-t-il pas casser le défilement automatique sur tous les sites chargés dans Chrome 61 qui n'utilisent pas scrollingElement, c'est-à-dire à peu près tous les sites construits au cours des 5 à 10 dernières années ?
2 votes
@Korgrue oui, c'est fort probable. Un changement dévastateur. Hourra aux développeurs arrogants de Chromium.
0 votes
Bonjour @realseanp pour moi et d'autres (voir les commentaires) ajouter la réponse à l'intérieur de la question est assez confus et puisque OP peut réponse automatique Je ne vois vraiment aucune raison ou avantage à inclure la réponse dans la question. Pourquoi avez-vous choisi de ré-inclure la réponse dans la question ?
0 votes
Alors que le PO peut répondre à sa propre question, vous avez copié le contexte du message original dans la réponse de quelqu'un d'autre - changeant complètement à la fois le message original et la réponse. Le problème que je vois est que la personne qui a écrit la réponse n'avait rien inclus concernant ce que vous avez mis dans la réponse. Si cette réponse avait été votée ou sélectionnée comme réponse, cette personne aurait été créditée d'une réponse qu'elle n'avait pas écrite. Il semble également que cette réponse ait été supprimée. Si j'avais laissé vos modifications, les connaissances du message original auraient été perdues. @surfmuggle
0 votes
La solution ici ne semble pas être idéale, et manque d'explication donc elle ne convient pas vraiment comme réponse sans recherche supplémentaire. /cc @surfmuggle
0 votes
Pourquoi toute cette agitation autour de l'idée de mettre la réponse dans la question ? Je ne suis pas du tout d'accord avec cette notion. Ça manque d'explication ? Comment ? Op a lié directement à l'explication. Parfois, les gens sur StackOverflow me font grincer des dents !