Les ancres/hashtags sont supprimées des URLs sur mobile. Comment l'empêcher ?

Lorsque je clique sur un lien avec un ancrage sur desktop, il défile jusqu’au bon endroit. Cependant, sur mobile (Android, FF et Chrome), l’ancrage est supprimé de l’URL, donc il n’y a pas de défilement vers cet emplacement.

Ce que j’essaie de faire :

Nous avons un long document de directives et de FAQ qui doivent lier aux titres. Comme Discourse supprime les paramètres id, j’ai créé un composant de thème simple qui utilise des attributs de données personnalisés dans le document cible et écoute les ancres dans l’URL pour faire défiler vers l’élément avec l’attribut de données correspondant.

Ça marche sur desktop !

Cependant, sur mobile, les ancres semblent être supprimées, de sorte que lorsque vous arrivez sur la page cible, il n’y a pas de défilement vers le bon élément. Et bien sûr, avec un long document, c’est sur mobile que vous avez le plus besoin de cette navigation.

Maintenant, je constate que les ancres générées par le composant Table des matières fonctionnent lorsque vous les ouvrez dans un nouveau lien. Ils ne sont pas supprimés de l’URL et le navigateur défile vers le bon endroit.

Comment puis-je faire fonctionner cela ?


(Rant : C’est vraiment frustrant d’essayer de faire quelque chose d’aussi basique et fondamental en HTML, à savoir avoir des ancres et y faire des liens. Je réalise que parce que les publications sont du contenu créé par les utilisateurs, il y a des problèmes de sécurité. Mais il me semble que les solutions mises en œuvre pour se protéger contre les abus sont très brutales et rendent quelque chose de très simple très compliqué. Cela dit, mon site n’a jamais été piraté, donc je suppose que c’est quelque chose.)

Petite mise à jour…

Quelqu’un a suggéré d’utiliser des paramètres de requête à la place. Ceux-ci ne semblent pas être supprimés sur mobile. Mais incroyablement, ils le sont sur desktop.