Se eliminan los hash/anclas de las URLs en móviles. ¿Cómo evitarlo?

Cuando hago clic en un enlace con un anclaje en el escritorio, se desplaza hasta allí. Sin embargo, en el móvil (Android, FF y Chrome), el anclaje se elimina de la URL, por lo que no hay desplazamiento hasta ese punto.

Lo que estoy intentando hacer:

Tenemos un documento largo de directrices y preguntas frecuentes que necesitan enlazar a encabezados. Como Discourse elimina los parámetros id, he creado un componente de tema simple que utiliza atributos de datos personalizados en el documento de destino y escucha los anclajes en la URL para desplazarse al elemento con el atributo de datos coincidente.

¡Funciona en el escritorio!

Sin embargo, en el móvil, los anclajes parecen eliminarse, de modo que cuando llegas a la página de destino no hay desplazamiento hasta el elemento correcto. Y, por supuesto, con un documento largo, es en el móvil donde más necesitas esa navegación.

Ahora bien, encuentro que los anclajes generados por el componente Tabla de contenidos sí funcionan cuando se abren en un nuevo enlace. No se eliminan de la URL y el navegador se desplaza al lugar correcto.

¿Cómo puedo hacer que esto funcione?

Pequeña actualización…

Alguien sugirió usar parámetros de consulta en su lugar. Esos no parecen ser eliminados en dispositivos móviles. Pero, increíblemente, sí se eliminan en escritorio.

Aquí hay algunas publicaciones relacionadas, aunque no abordan el problema específico de que se eliminen las URL…

no uso Android, así que no puedo probar esto, pero he usado enlaces a encabezados muchas veces y funcionan perfectamente en mi iPhone. me pregunto por qué usas anclas de id en lugar de simplemente enlazar al encabezado que quieres.

por ejemplo, ¿esto funciona para ti? configuración de Cloudflare R2

¿puedes dar un ejemplo de cómo se ve tu enlace de ancla? quizás no entiendo bien lo que intentas lograr.

Porque esos enlaces a encabezados son extremadamente frágiles. Así es como se ve el que proporcionaste:

https://meta.discourse.org/t/-/148916#p-738234-cloudflare-r2-13

¿Ves ese -13 al final? Está ahí porque es el decimotercer encabezado. En cuanto agregues un nuevo encabezado antes en el documento, se romperá. Y, por supuesto, si cambias el texto del encabezado, también se romperá.

Cuando digo que se rompe, me refiero a los cambios en el documento de destino. Por lo que puedo ver, esos anclajes se generan dinámicamente cuando se carga la página. Así que si estás utilizando el plugin TOC, cambiar el documento no es un problema.

En nuestro caso de uso, se está enlazando a una sección de preguntas frecuentes. Por lo tanto, no es inusual agregar nuevas preguntas o encabezados.

Pero tienes razón en que Discourse parece detectar el patrón de esos anclajes y permite que pasen. Pero si no coincide con el patrón esperado, se elimina.

Son simplemente identificadores alfanuméricos ordinarios. Así que si intentara crear un anclaje para tu ejemplo anterior, simplemente usaría cloudflare-r2.