Interrupción en la búsqueda CTRL+F, por favor proporcione un método alternativo

Hola,

Estuve en el siguiente foro de Discourse:

Y necesitaba encontrar la palabra “mac”.

Usando CTRL+F, solo podía encontrar esta cadena cuando estaba en pantalla. El desplazamiento hacía desaparecer las coincidencias.

También interrumpe el indicador de coincidencia de posición de desplazamiento en la barra de desplazamiento.

Entiendo la afirmación de que esto es para “ahorrar memoria”, pero este sistema tiene 64 gigabytes de memoria y esta página tiene menos de 100 kilobytes de texto. Así que entiendo que en realidad es una función anti-scraping como la que utiliza Facebook para prevenir (pero sin éxito) el scraping.

Buscando este extraño error, encontré un mar absoluto de quejas sobre esta función anti-característica extremadamente disruptiva.

¿Cuáles son las alternativas?

¿Se puede desactivar del lado del cliente?

¿Qué hay de cargar la página en modo de impresión?

¿Hay alguna forma de forzar una descarga de solo texto completo de toda la página para poder verla en un editor de texto?

¿Qué hay de un script de Greasemonkey, algo que pueda romper la función que descarga de la memoria el texto para que pueda ser buscado?

¿Es mi única opción penetrar el servidor de la base de datos, extraer todo el contenido de Discourse y luego escribir código para mostrar el hilo de comentarios sin estas interrupciones?

Veo quejas sobre esto desde 2014, así que me imagino que no hay ningún deseo de resolver este problema y es una “característica, no un error”, pero ¿una característica para los propietarios y no para el usuario?

¿Cuál es la “meta” sobre este problema tan serio que hace que DUDAR alguna vez tener la desgracia de tener que navegar por un foro de “Discourse”?

Sí, estoy resentido, ¿cómo se nota?

Le pedí a la máquina de impresión que me diera una versión impresa

Y después de aproximadamente 1 minuto de procesamiento de la vista previa, SÍ funciona

Añada /print para cargar hasta 100 publicaciones a la vez, véalo en acción aquí: https://forum.openwrt.org/t/re-luci-add-support-for-managing-tags-in-dhcp-and-dns-configuration-web-page/220640/print

Sí, vea https://forum.openwrt.org/raw/220640

¡Gracias!

El método raw me funciona, ¿hay algún complemento para cargar automáticamente todas las páginas en modo “raw” por casualidad?

Estaba escribiendo otro mensaje, disculpa, no puedo quedarme todo el día esperando a que la imagen se cargue de una en una.

Sí, lo he intentado pero

No deseo utilizar la búsqueda del lado del servidor

y además los resultados no son utilizables para mí

Así es como se ve

Lo siento,

Estaba tratando de resolver un problema en OpenWrt

Y me estaba frustrando mucho no poder buscar como espero que un navegador pueda buscar.

Lamento que sientas que estoy siendo descortés por no dedicar tiempo aquí, pero por favor entiende desde mi perspectiva.

Estoy luchando para usar el software, hasta tal punto que empiezo a buscar soluciones para superar el problema.

Y cuando no puedo encontrar la solución, busco el nombre del software, encuentro su espacio de discusión, creo una cuenta, hago el captcha, hago la verificación por correo electrónico, busco en el foro preguntas similares, encuentro algunas, están cerradas, encuentro otras, decido hacer una nueva publicación, empiezo a escribir, escribo todo mi comentario, con muchos ejemplos de imágenes

y luego presiono responder, y recibo un mensaje de error que dice que solo se puede publicar una imagen a la vez

Lo que requeriría editar todo mi mensaje que depende de esas capturas de pantalla para tener coherencia.

Así que intento dividir mi mensaje en 1 imagen por publicación, pero luego hay un período de tiempo de espera desconocido que debo esperar entre mensajes, y solo quiero volver al trabajo y empiezo a pensar, estos chicos seguramente saben sobre la lucha, así que no estoy aportando nada diciéndoles lo molesto que estoy por esto

pero no, como usuario avanzado, tengo el deber de informar a los desarrolladores sobre las dificultades de otros usuarios y ahora ha pasado como media hora sólida luchando para contar sobre la lucha.

Así que… lamento si esto es descortés, pero no quiero pasar otra cantidad de minutos extra desconocida descubriendo y realizando las acciones que se requieren para publicar mi mensaje.

Pero te aseguro que no tengo la intención de ser descortés contigo, ¡simplemente estoy muy frustrado!

Hola a todos, me encontré con el mismo problema molesto con CTRL+F en Discourse: las publicaciones que no están actualmente en pantalla desaparecen de la búsqueda debido al sistema de carga diferida/descarga de la memoria. Incluso con 64 GB de RAM, no se puede buscar todo el tema en el navegador. Por lo que entiendo, esto es más una característica anti-scraping que un ahorro de memoria. Aquí están las alternativas más seguras que he encontrado y que funcionan:

  1. Usar la Vista de Impresión: Agregue /print al final de la URL del tema, por ejemplo, https://forum.example.com/t/topic-name/12345/print. Esto carga todas las publicaciones del tema a la vez y funciona con la búsqueda del navegador (CTRL+F). El diseño es simplificado, pero perfecto para la búsqueda de texto completo.

  2. Desplazarse hasta que todo se cargue: Siga desplazándose hasta que el sistema de carga diferida haya renderizado todas las publicaciones en el DOM. CTRL+F encontrará todo. Puede ser tedioso para hilos largos, pero funciona sin herramientas adicionales.

  3. Usar la API de Discourse: Cada tema tiene un endpoint JSON como https://forum.example.com/t/{topic_id}.json. Puede extraer todas las publicaciones de la matriz post_stream.posts, abrirlas en un editor de texto y buscar cómodamente. Es seguro, oficial y funciona independientemente de la carga diferida.

  4. Enfoque de Userscript / Greasemonkey: Puede automatizar la carga de la página completa de publicaciones con este simple userscript para Chrome/Firefox. Hace clic automáticamente en “cargar más publicaciones” hasta que el tema se renderiza completamente:

// ==UserScript==
// @name         Discourse Load All Posts
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Auto-click "load more posts" to fully render topic for search
// @match        https://*/*
// @grant        none
// ==/UserScript==
(function() {
    'use strict';
    function loadAll() {
        const button = document.querySelector('.load-more[data-more-url]');
        if (button) {
            button.click();
            setTimeout(loadAll, 500); // esperar y volver a intentarlo
        }
    }
    window.addEventListener('load', () => {
        setTimeout(loadAll, 1000); // comenzar un segundo después de la carga de la página
    });
})();

Una vez que haya terminado, CTRL+F buscará todo en el hilo.

Exportación / Búsqueda Externa: Use la vista de impresión o el JSON de la API para exportar las publicaciones a PDF, HTML o texto sin formato. Ábralo en un editor como VSCode o Notepad++ para la búsqueda de texto completo.

:warning: No intente trucos del servidor: Penetrar la base de datos o raspar contenido del lado del servidor es ilegal e innecesario. Use la API / vista de impresión / userscript: todos son seguros y funcionan de manera confiable.

TL;DR: Lo más fácil: vista /print. Más flexible: JSON de la API o userscript. CTRL+F funciona una vez que todas las publicaciones se cargan en el DOM. Espero que el equipo de Discourse vea esto y tal vez considere una opción de “búsqueda completa” algún día: es un problema serio de experiencia de usuario para cualquiera que investigue o lea temas en profundidad :sweat_smile:

¿Ese script de Greasemonkey funciona?

¿Lo has hecho tú?

Para aclarar sobre el userscript que compartí: lo escribí específicamente para funcionar con el foro que estaba usando, por lo que puede haber algunas diferencias en la estructura HTML si intentas adaptarlo a otros sitios. El script funciona en temas estándar de Discourse que utilizan el sistema de “Cargar más publicaciones” (carga diferida) haciendo clic automáticamente en el botón de cargar más publicaciones repetidamente hasta que todas las publicaciones se cargan en el DOM. Una vez que todas las publicaciones se cargan, puedes usar CTRL+F de tu navegador para buscar cualquier palabra clave normalmente.

De hecho, muchas personas han estado usando Tampermonkey/Greasemonkey durante años para manejar Discourse de esta manera, y funciona bien incluso en foros muy grandes.

:warning: Nota: Algunos foros pueden cambiar la clase del botón (por ejemplo, \.load-more\[data-more-url\]), por lo que es posible que necesites ajustar ligeramente el selector para que coincida con el botón real.