Interrupção na busca CTRL+F, por favor, forneça método alternativo

Olá,

Eu estava no seguinte fórum do Discourse:

E precisei encontrar a palavra “mac”.

Usando CTRL+F, ele só conseguia encontrar essa string quando estava na tela. O ato de rolar a página fazia com que as correspondências desaparecessem.

Isso também atrapalha o indicador de correspondência de posição de rolagem na barra de rolagem.

Eu entendo a alegação de que isso é para “economizar memória”, mas este sistema tem 64 gigabytes de memória e esta página tem menos de 100 kilobytes de texto. Então, eu entendo que isso é, na verdade, um recurso anti-raspagem (anti-scraping) como o que o Facebook utiliza para prevenir (mas falha) a raspagem.

Pesquisando sobre esse bug estranho, encontrei um mar absoluto de reclamações sobre este recurso anti-funcionalidade extremamente disruptivo.

Quais são as alternativas?

Pode ser desativado no lado do cliente?

E quanto a carregar a página no modo de impressão?

Existe alguma maneira de forçar uma exportação de texto completo de toda a página para que eu possa simplesmente visualizá-la em um editor de texto?

E quanto a um script do Greasemonkey, algo que possa quebrar o recurso que descarrega o texto da memória para que ele possa ser pesquisado?

Minha única opção é invadir o servidor do banco de dados, exfiltrar todo o conteúdo do Discourse e, em seguida, escrever código para exibir o tópico de comentários sem essas interrupções?

Vejo reclamações sobre isso desde 2014, então imagino que não haja desejo de resolver este problema e que seja um “recurso, não um bug”, mas um recurso para os proprietários e não para o usuário?

Qual é a “meta” sobre este problema muito sério que me faz TEMER ter o infortúnio de ter que navegar em um fórum do “Discourse”?

Sim, estou amargurado, como você pode notar?

Pedi à máquina de impressão para me dar uma versão impressa

E depois de cerca de 1 minuto de processamento da prévia, FUNCIONA

Anexe /print para carregar até 100 publicações por vez, veja em ação aqui: https://forum.openwrt.org/t/re-luci-add-support-for-managing-tags-in-dhcp-and-dns-configuration-web-page/220640/print

Sim, veja https://forum.openwrt.org/raw/220640

Obrigado!

O método raw resolve para mim.

Por acaso existe um addon para carregar todas as páginas em modo “raw” automaticamente?

Eu estava escrevendo outra mensagem, desculpe, não posso ficar o dia todo esperando o tempo limite de uma imagem de cada vez.

Sim, eu tentei, mas

Eu não desejo usar a pesquisa do lado do servidor

e também os resultados não estão de uma forma utilizável para mim

Veja como isso se parece

Peço desculpas,

Eu estava tentando resolver um problema no OpenWrt

E estava ficando muito frustrado por não conseguir pesquisar como espero que um navegador consiga pesquisar.

Peço desculpas por você sentir que estou sendo indelicado por não dedicar tempo aqui, mas por favor, entenda do meu ponto de vista.

Estou lutando para usar o software, a ponto de começar a procurar soluções para superar o problema.

E quando não consigo encontrar a solução, encontro o nome do software, encontro seu espaço de discussão, crio uma conta, faço o captcha, faço a verificação por e-mail, pesquiso no fórum por perguntas semelhantes, encontro algumas, elas estão fechadas, encontro outras, decido fazer uma nova postagem, começo a escrever, escrevo todo o meu comentário, com muitos exemplos em imagens

e então eu clico em responder, e recebo uma mensagem de erro dizendo que só posso postar uma imagem por vez

O que exigiria que eu editasse toda a minha mensagem, que depende dessas capturas de tela para ter coerência.

Então eu tento dividir minha mensagem em 1 imagem por postagem, mas então há um período de tempo limite desconhecido para esperar entre as mensagens, e eu só quero voltar ao trabalho e estou começando a pensar, esses caras certamente sabem sobre a dificuldade, então não estou adicionando nada ao dizer a eles o quanto estou incomodado com isso

mas não, como um usuário avançado, eu tenho o dever de informar aos desenvolvedores sobre as dificuldades de outros usuários e agora já faz cerca de meia hora lutando para contar sobre a dificuldade.

Então… Peço desculpas se isso é indelicado, mas não quero gastar mais um número desconhecido de minutos extras para descobrir e realizar quais ações são necessárias para postar minha mensagem.

Mas garanto que não quero ser indelicado com você, estou apenas muito frustrado!

Olá pessoal, encontrei o mesmo problema irritante com CTRL+F no Discourse: postagens que não estão atualmente na tela desaparecem da pesquisa por causa do sistema de carregamento lento/descarregamento da memória. Mesmo com 64GB de RAM, você não consegue pesquisar o tópico inteiro no navegador. Pelo que entendi, isso é mais um recurso anti-scraping do que de economia de memória. Aqui estão as alternativas mais seguras que encontrei que funcionaram:

  1. Use a Visualização de Impressão: Adicione /print ao final do URL do tópico, por exemplo, https://forum.example.com/t/topic-name/12345/print. Isso carrega todas as postagens do tópico de uma vez e funciona com a pesquisa do navegador (CTRL+F). O layout é simplificado, mas perfeito para pesquisa de texto completo.

  2. Role até que Tudo Carregue: Continue rolando até que o sistema de carregamento lento tenha renderizado todas as postagens no DOM. O CTRL+F encontrará tudo. Pode ser tedioso para tópicos longos, mas funciona sem ferramentas extras.

  3. Use a API do Discourse: Cada tópico tem um endpoint JSON como https://forum.example.com/t/{topic_id}.json. Você pode extrair todas as postagens do array post_stream.posts, abrir em um editor de texto e pesquisar confortavelmente. Seguro, oficial e funciona independentemente do carregamento lento.

  4. Abordagem Userscript / Greasemonkey: Você pode automatizar o carregamento de postagens de página inteira com este userscript simples para Chrome/Firefox. Ele clica automaticamente em “carregar mais postagens” até que o tópico seja totalmente renderizado:

// ==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); // espera e tenta novamente
        }
    }
    window.addEventListener('load', () => {
        setTimeout(loadAll, 1000); // começa um segundo após o carregamento da página
    });
})();

Depois de concluído, CTRL+F pesquisará tudo no tópico.

Exportação / Pesquisa Externa: Use a visualização de impressão ou o JSON da API para exportar postagens para PDF, HTML ou texto simples. Abra em um editor como VSCode ou Notepad++ para pesquisa de texto completo.

:warning: Não tente hacks de servidor: Invadir o banco de dados ou fazer scraping de conteúdo no lado do servidor é ilegal e desnecessário. Use a API / visualização de impressão / userscript — todos são seguros e funcionam de forma confiável.

TL;DR: O mais fácil: visualização /print. Mais flexível: JSON da API ou userscript. CTRL+F funciona assim que todas as postagens são carregadas no DOM. Espero que a equipe do Discourse veja isso e talvez considere uma opção de “pesquisa completa” algum dia — é um sério problema de UX para quem faz pesquisa ou leitura aprofundada de tópicos :sweat_smile:

Esse script do Greasemonkey funciona?

Você o fez?

Apenas para esclarecer sobre o userscript que compartilhei: Eu o escrevi especificamente para funcionar com o fórum que eu estava usando, então pode haver algumas diferenças na estrutura HTML se você tentar adaptá-lo para outros sites. O script funciona em tópicos padrão do Discourse que usam o sistema de “Carregar Mais Publicações” (lazy-load) clicando automaticamente no botão carregar mais publicações repetidamente até que todas as publicações sejam carregadas no DOM. Depois que todas as publicações forem carregadas, você pode usar o CTRL+F do seu navegador para pesquisar por quaisquer palavras-chave normalmente.

Na verdade, muitas pessoas têm usado o Tampermonkey/Greasemonkey por anos para gerenciar o Discourse dessa forma, e funciona bem mesmo em fóruns muito grandes.

:warning: Nota: Alguns fóruns podem alterar a classe do botão (por exemplo, \.load-more\[data-more-url\]), então você pode precisar ajustar ligeiramente o seletor para corresponder ao botão real.