2010-09-20 11 views
0

Je souhaite implémenter une fonctionnalité de signet pour mon application Web. Fondamentalement, les utilisateurs devraient être en mesure de mettre en signet une sélection dans une certaine page Web et plus tard (dans une autre session de navigation) sauter directement à cette position de signet. Dans ma première tentative, j'économise la valeur de pageYOffset lorsque les utilisateurs choisissent de mettre en signet et quand ils passent au signet, je définis la valeur de pageYOffset de sorte que le navigateur défile au bon endroit. Toutefois, cette approche fonctionne uniquement si l'utilisateur ne modifie pas la taille de police ou tout autre paramètre d'interface utilisateur qui invalidera l'ancienne position de défilement. Je suis coincé en ce moment.Mettre en place un signet HTML en JavaScript

Existe-t-il un autre moyen d'implémenter cette fonctionnalité de manière plus fiable?

Certaines contraintes de l'application:

  • Le code HTML ne doit pas être modifié
  • La solution doit travailler avec Safari
+0

'HTML ne doit pas être modifié' mais peut-on modifier le DOM? – slebetman

+0

Oui, la modification du DOM est totalement correcte, tant que la source HTML n'est pas modifiée et persistante. –

Répondre

0

Hmm ... selon la façon dont votre page est structuré, vous pouvez obtenir l'ID le plus proche de leur position actuelle et baser la variable stockée sur celle-ci, plutôt que sur un emplacement spécifique. Vous serez plus proche même si les choses changent!

+0

Nous sommes supposés soutenir n'importe quel type de page. Donc en supposant sur une structure de page spécifique, par ex. id, ne fonctionnerait pas. –

Questions connexes