2012-06-07 6 views
1

D'abord, jouer avec le menu de navigation sur cette page (côté gauche): http://bestds.com/TankStorage/Bug Chrome - Méthode window.scroll INTERCEPTIONS DOM rendu

J'utilise javascipt mettre à jour le dom backgroundColor de ces éléments li sur Cliquez sur.

Firefox rend les éléments DOM mis à jour, mais Chrom et Chromium ne les affichent pas. En utilisant l'inspecteur de documents de Chromium, je peux voir clairement que la couleur de fond de l'élément li a été mise à jour correctement, mais qu'elle n'est pas rendue. Ce qui est marrant, c'est qu'il ira de l'avant et rendra les changements du DOM après avoir passé mon curseur sur l'élément html non-rendu dans l'inspecteur de documents de Chrom!

Comment résoudre ce problème?

+0

Pourquoi n'utilisez-vous pas css? – davin

Répondre

1

Je l'ai compris. Chrom a un bug de rendu.

Si vous appelez une fonction de défilement de fenêtre, immédiatement après la mise à jour de certaines propriétés DOM, Chrom ne restitue pas complètement toutes vos modifications DOM.

Pour résoudre le problème, je remplace cette ligne:

window.scroll(0,docPos); 

Avec cette ligne:

setTimeout('window.scroll(0,' + docPos + ')',1); 

Cela donne Chrom la possibilité de rendre les changements dom avant la fenêtre de défilement de rendu bug peut l'arrêter.

+0

vous avez un lien vers le bogue? – zengr

+0

J'ai soumis le bogue via le menu d'aide de Chrom, mais cette méthode ne vous fournit pas de lien de suivi. –

+0

Ceci est vraiment ennuyeux mais, gaspillé environ 25 minutes de mon temps à essayer de le déboguer. – apscience