J'ai une page html vraiment compliquée et j'ai ajouté quelques ancres de signet à divers points. Les ancres ressemblent à ceci:comment déboguer les ancres de signets ne fonctionne pas
<a href="#foo bar">click here for foo bar</a>
lorum ipsum etc
<a name="foo bar">foo bar</a>
Mais quand vous cliquez dessus, rien ne se passe - l'URL dans la barre d'adresse ne change pas, et la page ne se déplace pas. Si je retire mes ancres et les mets dans une page plus simple, elles commencent à travailler, donc je pense que quelque chose doit interférer avec la navigation d'une façon ou d'une autre, mais je ne peux pas penser à la clouer. Je m'interrogeais sur une erreur dans le javascript quelque part qui annulait la navigation, mais la page a des milliers de lignes de javascript et je n'ai rien trouvé de suspect pour le moment.
Le problème se produit à la fois dans Chrome et Firefox.
Comment puis-je corriger ce problème?
MISE À JOUR: Serait-ce un problème de CSS? les ancres cibles se trouvent dans un <div>
avec la propriété CSS overflow:auto;
. Cela provoque l'apparition de la barre de défilement à l'intérieur du div au lieu du bord de la page - ce qui n'était pas le cas avec ma page de texte simple.
MISE À JOUR 2: débordement: l'auto ne casse pas les ancres nommées; tested with a simple example
Les espaces sont-ils autorisés dans les signets? – f2lollpll
Je commencerais par chercher du JavaScript qui empêche la propagation de l'événement click ou empêche l'action par défaut. Si vous utilisez jQuery, http://api.jquery.com/event.stopPropagation/ et http://api.jquery.com/event.preventDefault/ – j08691
@sjums, j'ai essayé de copier les signets sur une simple page de test, et ils ont bien fonctionné avec des espaces. Je vais expérimenter quand même - tout vaut la peine d'être essayé à ce stade. –