Pieza 31 de 64
AccesoPieza nº 0031 de 64

La página de la que no se vuelve

La página de quejas de la Comisión Nacional de los Mercados y la Competencia está programada para que el botón de volver atrás no saque de ella. Lo hace un fichero de trece líneas cuyo único trabajo es ese, y en nuestra prueba, pulsando atrás, no había manera de salir. De las 5.064 páginas que guardamos del sitio, solo la de quejas, en castellano y en inglés, carga ese fichero.

Dominio
www.cnmc.es
Guardado
31 AGO 2026
Citas
5 en 2 ficheros guardados
Lectura
unos 4 min
Captura de https://www.cnmc.es/
foto 1La portada de www.cnmc.es el 23 de septiembre de 2026: la Comisión Nacional de los Mercados y la Competencia.Captura del 23 de septiembre de 2026, 10:20 (hora peninsular)

La página empieza por lo más sensato que puede preguntar un formulario de quejas: si lo que va a escribir usted quiere que cuente oficialmente. La pregunta, literal: “¿Quieres que tenga consideración oficial y tenga respuesta obligatoria?”. Y debajo, tres opciones para marcar: «Sí quiero», «No hace falta» y «Accesibilidad de la web». La tercera no contesta a la pregunta, es un asunto y no un sí o un no, pero ahí está, en la misma lista que las otras dos, encima del botón de enviar.

Captura de https://cnmc.es/participa/quejas-o-sugerencias
foto 2La página de quejas y sugerencias de la CNMC el 26 de septiembre de 2026, tal como se abre, sin escribir ni pulsar nada. El recuadro es nuestro y señala la pregunta con la que empieza el formulario; debajo, las tres opciones y el botón Enviar. El fichero que desactiva el botón de volver atrás no se ve: la página lo carga en su cabecera.Captura del 26 de septiembre de 2026, 15:59 (hora peninsular) · el recuadro es nuestro

El botón de volver atrás es de las piezas más viejas del navegador, y pertenece al programa con el que uno mira, no al sitio que está mirando. Sirve para salir de donde uno no quería entrar, para releer lo anterior, para deshacer un clic. Es la salida de emergencia de quien se pierde, porque es el gesto que no rompe nada.

En esta página no funciona. Lo impide un fichero de 331 bytes y trece líneas de JavaScript, el lenguaje de los programas que corren en el navegador, llamado webform.form.disable_back.js. La página lo carga en su cabecera, antes de pintar nada, y el fichero no disimula: su comentario de presentación dice «JavaScript to disable back button». JavaScript para desactivar el botón de atrás. Lo que hace cabe en dos gestos. Trece líneas, y ninguna de sobra.

1de 5www.cnmc.es/modules/contrib/webform/js/webform.form.disable_back.jslínea 3 de 14
Copia
archivo
Guardado
31 ago 2026
Peso
331 B
sha256
5af893ba27ac…
1/**
2 * @file
3 * JavaScript to disable back button.
4 */
5
6(function () {
1La primera frase del fichero dice para qué está. No hace falta leer el resto para saberlo.

El primero: nada más cargar, añade al historial del navegador una entrada nueva que apunta a la misma página con una coletilla detrás, #no-back. El segundo: se queda escuchando, y cada vez que esa coletilla cambia, que es lo que ocurre al pulsar atrás, la vuelve a poner. El visitante pulsa para salir, el historial retrocede un paso y el programa lo devuelve al sitio antes de que se note.

2–3de 5www.cnmc.es/modules/contrib/webform/js/webform.form.disable_back.jslíneas 8–10 de 14
Copia
archivo
Guardado
31 ago 2026
Peso
331 B
sha256
5af893ba27ac…
6(function () {
7  // From: http://stackoverflow.com/questions/17962130/restrict-user-to-refresh-and-back-forward-in-any-browser
8  history.pushState({page: 1}, 'Title 1', '#no-back'2);
9  window.onhashchange = function (event) {
10    window.location.hash3 = 'no-back';
11  };
12
13})();
2El primer gesto: una entrada nueva en el historial, apuntando a esta misma página. Con el título «Title 1».
3El segundo: cada vez que la coletilla cambia, al pulsar atrás, se vuelve a poner. Esta es la línea que devuelve al visitante.

No lo dedujimos: lo ejecutamos. Montamos en nuestra máquina dos páginas, una detrás de otra, y en la segunda pusimos este fichero tal como lo sirve la CNMC, sin tocarle una letra. Fuimos de la primera a la segunda y pulsamos atrás tres veces seguidas. Las tres veces seguíamos en la segunda, con su coletilla puesta. La página anterior estaba en el historial, a un paso, y no se llegaba a ella.

El fichero cuenta además de dónde viene. Encima de la línea que empuja la entrada al historial hay un comentario con una dirección de Stack Overflow, el sitio donde los programadores se preguntan cosas unos a otros, y la dirección lleva el título de la pregunta escrito dentro: cómo impedir que el usuario refresque y vaya atrás o adelante en cualquier navegador. Según ese comentario, de ahí sale el código que corre en la página de un organismo público.

4de 5www.cnmc.es/modules/contrib/webform/js/webform.form.disable_back.jslínea 7 de 14
Copia
archivo
Guardado
31 ago 2026
Peso
331 B
sha256
5af893ba27ac…
4 */
5
6(function () {
7  // From: http://stackoverflow.com/questions/17962130/restrict-user-to-refresh-and-back-forward-in-any-browser
8  history.pushState({page: 1}, 'Title 1', '#no-back');
9  window.onhashchange = function (event) {
10    window.location.hash = 'no-back';
4La procedencia, escrita en el propio fichero. El título de la pregunta va dentro de la dirección: restringir al usuario refrescar e ir atrás o adelante en cualquier navegador.

La orden que mete la entrada en el historial admite un título, y el que lleva es «Title 1», título uno. La mayoría de los navegadores ni lo usa, así que no se ve en ninguna parte. Hay que repartir bien las responsabilidades, porque aquí es fácil confundirse. El fichero no lo escribió la CNMC: vive bajo la carpeta de módulos de terceros de Drupal, el gestor con el que está hecho el sitio, y viene dentro de Webform, el complemento con el que se montan formularios.

5de 5www.cnmc.es/participa/quejas-o-sugerenciaslínea 31 de 745
Copia
archivo
Guardado
31 ago 2026
Peso
72,8 kB
sha256
b809b960daab…
28<script src="/sites/default/files/js/js_Xq3OnFo1VTUlquc5FcWp8wd900AZIZls_mB4wzx3u6k.js?scope=header&amp;delta=0&amp;language=es&amp;theme=cnmc_barrio_bs&amp;include=eJyFkIGKwzAIhl-oTR6pmMRJNhNLtLft7Zfu2oN1O4YQ4fs_gxhETK3BPAVoLYsnlgA8qt05VxpiLXGLpqA-7PoxOI6JXD…
29<script src="/modules/contrib/cookies/js/cookiesjsr.conf.js?v=10.6.15" defer></script>
30<script src="/libraries/cookiesjsr/dist/cookiesjsr-preloader.min.js?v=10.6.15" defer></script>
31<script src="/modules/contrib/webform/js/webform.form.disable_back.js?tkm271"></script>
32
33  </head>
34  <body class="layout-no-sidebars page-node-408817 path-node page-node-type-webform">
5La única llamada al fichero en toda la página, en su cabecera. La carpeta lo sitúa: módulos de terceros de Drupal, complemento Webform.

En Webform, desactivar el botón de atrás es una casilla que el administrador de cada formulario marca o no marca. Se llama “Disable back button”, y su explicación dice que, marcada, no deja volver al formulario con el botón de atrás. En la CNMC está marcada en este formulario y en ninguno más de los que guardamos: de las 5.064 páginas del sitio, el fichero lo cargan dos, la de quejas en castellano y la misma en inglés.

La casilla tiene su sentido: que nadie regrese al formulario después de haberlo dejado. Lo que pasa es que el fichero actúa también mientras se está en él. En esta página todavía no se ha enviado nada, no hay nada que repetir, y atrás es lo que pulsa quien ha entrado por error, quien quiere releer la página anterior o quien se lo ha pensado mejor.

El 26 de septiembre de 2026 volvimos a pedir las dos cosas. La página sigue cargando el fichero, con otra coletilla de caché en su dirección, y el fichero es el mismo, byte a byte: sus trece líneas, su comentario en inglés, su enlace a Stack Overflow y su «Title 1». Y la pregunta sigue siendo la misma: si quiere usted que esto tenga respuesta obligatoria. La respuesta a la otra pregunta, la de si puede usted irse, ya la ha dado el fichero.

El botón de atrás pertenece al visitante, no al sitio. En la página donde se pregunta si su queja debe tener respuesta obligatoria, es lo primero que se le quita.

Lo que decimos
  • La página https://cnmc.es/participa/quejas-o-sugerencias, guardada el 31 de agosto de 2026 y vuelta a pedir el 15 y el 26 de septiembre, carga en su cabecera el fichero webform.form.disable_back.js (331 bytes, trece líneas, comentario «JavaScript to disable back button»), que añade al historial una entrada con el fragmento #no-back y la repone cada vez que el fragmento cambia.
  • El fichero lleva dentro la dirección de Stack Overflow de donde dice proceder y el título «Title 1».
  • El 26 de septiembre el fichero servido tiene la misma huella que el guardado.
  • Ejecutando ese fichero tal cual en un banco propio, tras pulsar atrás tres veces el navegador seguía en la misma página.
  • Contado el 26 de septiembre sobre las 5.064 páginas guardadas de cnmc.es y www.cnmc.es en la captura cerrada el 11 de septiembre (la última entrada anterior al cierre de cada fichero), solo dos cargan ese fichero, la de quejas en castellano y en inglés; una recaptura posterior reescribió en el disco 1.040 de esas páginas, y en las 4.024 que conservan su huella no hay ninguna que lo cargue.
  • La casilla de Webform que lo activa se llama “Disable back button”.
Lo que no decimos
  • No decimos que el código lo escribiera la CNMC: viene en el complemento Webform de Drupal, donde es una opción que se marca por formulario.
  • No decimos que el formulario no funcione: no lo hemos enviado, ni vamos a enviarlo.
  • No decimos qué hace el botón de atrás en todos los navegadores: lo medimos en un Chrome, con el fichero tal cual, en nuestra máquina y no contra el servidor de la CNMC.
  • Y no decimos que marcar esa casilla sea un error en cualquier formulario: decimos en cuál está marcada.
Procedencia

De dónde sale cada cita

Cada trozo de código de esta ficha está en un fichero guardado tal como lo entregó el servidor, con su huella (sha256) y su hora. Las citas entre «» se comprueban por programa contra ese fichero antes de publicar.

El 21 de septiembre de 2026, una de sus 5 citas ya no aparecía en la página. Lo que ha cambiado desde que lo contamos.

Desgobierno Digital · https://desgobiernodigital.com/piezas/cnmc-sin-vuelta/ · copia impresa de la edición generada el 19 de octubre de 2026 · Un proyecto de BQuant · correcciones: @Gsnchez