Interruzione della ricerca CTRL+F, si prega di fornire un metodo alternativo

Ciao,

Ero sul seguente forum di discussione

e avevo bisogno di trovare la parola “mac”.

Usando CTRL+F, riusciva a trovare questa stringa solo quando era visibile sullo schermo. Lo scorrimento faceva scomparire le corrispondenze.

Inoltre, interrompe l’indicatore di corrispondenza della posizione di scorrimento nella barra di scorrimento.

Capisco l’affermazione che questo serve a “risparmiare memoria”, ma questo sistema ha 64 gigabyte di memoria e questa pagina è composta da meno di 100 kilobyte di testo. Quindi capisco che questa sia in realtà una funzionalità anti-scraping come quella utilizzata da Facebook per prevenire (ma fallendo) lo scraping.

Cercando questo strano bug, ho trovato un mare assoluto di lamentele su questa anti-funzionalità estremamente dirompente.

Quali sono le alternative?

Si può disabilitare lato client?

Che ne dici di caricare la pagina in modalità stampa?

C’è un modo per forzare un dump completo del testo dell’intera pagina in modo da poterla semplicemente visualizzare in un editor di testo?

Che ne dici di uno script Greasemonkey, qualcosa che possa rompere la funzionalità che scarica dalla memoria il testo in modo che possa essere cercato?

La mia unica opzione è penetrare il server del database, esfiltrare tutti i contenuti di discourse e poi scrivere codice per visualizzare il thread di commenti senza queste interruzioni?

Vedo lamentele su questo dal 2014, quindi immagino che non ci sia alcuna intenzione di risolvere questo problema e che sia una “funzionalità non un bug”, ma una funzionalità per i proprietari e non per l’utente?

Qual è la “meta” su questo problema molto serio che mi fa TEMERE di avere mai la sfortuna di dover navigare in un forum “discourse”?

Sì, sono amareggiato, come si può capire?

Ho chiesto alla macchina per la stampa di darmi una versione stampabile

E dopo circa 1 minuto di elaborazione dell’anteprima, FUNZIONA

Aggiungi /print per caricare fino a 100 post alla volta, vedi come funziona qui: https://forum.openwrt.org/t/re-luci-add-support-for-managing-tags-in-dhcp-and-dns-configuration-web-page/220640/print

Sì, vedi https://forum.openwrt.org/raw/220640

Grazie!

Il metodo raw funziona per me,

per caso c’è un addon per caricare automaticamente ogni pagina in modalità raw?

Stavo scrivendo un altro messaggio, scusa se non posso stare tutto il giorno ad aspettare che scada il timeout per un’immagine alla volta.

Sì, ci ho provato ma

non desidero utilizzare la ricerca lato server

e anche i risultati non sono utilizzabili per me

Ecco come appare

Mi dispiace,

Stavo cercando di risolvere un problema con OpenWrt

Ed ero davvero frustrato dal non riuscire a cercare come mi aspetterei che un browser potesse cercare.

Mi dispiace che tu senta che sono scortese a non dedicare tempo qui, ma ti prego di capire dal mio punto di vista.

Sto lottando per usare il software, a tal punto da iniziare a cercare soluzioni per superare il problema.

E quando non riesco a trovare la soluzione, trovo il nome del software, trovo il suo spazio di discussione, creo un account, faccio il captcha, faccio la verifica via email, cerco nel forum domande simili, ne trovo alcune, sono chiuse, ne trovo altre, decido di creare un nuovo post, inizio a scrivere, scrivo tutto il mio commento, con molti esempi di immagini

e poi premo rispondi, e ricevo un messaggio di errore che dice che si può pubblicare solo un’immagine alla volta

Il che richiederebbe di modificare l’intero messaggio che dipende da quegli screenshot per la coerenza.

Quindi provo a dividere il mio messaggio in 1 immagine per post, ma poi c’è un periodo di timeout sconosciuto da attendere tra i messaggi, e voglio solo tornare al lavoro e sto iniziando a pensare, questi ragazzi sicuramente conoscono la difficoltà, quindi non sto aggiungendo nulla dicendo loro quanto sono turbato da questo

ma no, come utente esperto, ho il dovere di far sapere agli sviluppatori le difficoltà degli altri utenti e ora è passata circa mezz’ora a lottare per raccontare la difficoltà.

Quindi… mi dispiace se questo è scortese, ma non voglio passare un altro numero sconosciuto di minuti extra per scoprire ed eseguire le azioni necessarie per pubblicare il mio messaggio.

Ma ti assicuro, non intendo essere scortese con te, sono solo molto frustrato!

Ciao a tutti, ho riscontrato lo stesso fastidioso problema con CTRL+F su Discourse: i post che non sono attualmente visibili scompaiono dalla ricerca a causa del sistema di lazy-load/scaricamento dalla memoria. Anche con 64 GB di RAM, non è possibile cercare l’intero argomento nel browser. Da quanto ho capito, questa è più una funzione anti-scraping che un risparmio di memoria. Ecco cosa ha funzionato (e le alternative più sicure) che ho trovato:

  1. Usa la Vista Stampa: Aggiungi /print alla fine dell’URL dell’argomento, ad esempio https://forum.example.com/t/topic-name/12345/print. Questo carica tutti i post dell’argomento contemporaneamente e funziona con la ricerca del browser (CTRL+F). Il layout è semplificato, ma perfetto per la ricerca full-text.

  2. Scorri Finché Tutto Viene Caricato: Continua a scorrere finché il sistema di lazy-load non ha renderizzato tutti i post nel DOM. CTRL+F troverà quindi tutto. Può essere noioso per i thread lunghi, ma funziona senza strumenti aggiuntivi.

  3. Usa l’API di Discourse: Ogni argomento ha un endpoint JSON come https://forum.example.com/t/{topic_id}.json. Puoi estrarre tutti i post dall’array post_stream.posts, aprirli in un editor di testo e cercare comodamente. Sicuro, ufficiale e funziona indipendentemente dal lazy-load.

  4. Approccio Userscript / Greasemonkey: Puoi automatizzare il caricamento completo dei post della pagina con questo semplice userscript per Chrome/Firefox. Clicca automaticamente su “carica altri post” finché l’argomento non è completamente renderizzato:

// ==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); // aspetta e riprova
        }
    }
    window.addEventListener('load', () => {
        setTimeout(loadAll, 1000); // inizia un secondo dopo il caricamento della pagina
    });
})();

Una volta terminato, CTRL+F cercherà tutto nel thread.

Esportazione / Ricerca Esterna: Usa la vista di stampa o l’API JSON per esportare i post in PDF, HTML o testo semplice. Apri in un editor come VSCode o Notepad++ per la ricerca full-text.

:warning: Non tentare hack del server: Penetrare il database o fare scraping di contenuti lato server è illegale e non necessario. Usa l’API / vista di stampa / userscript: sono tutti sicuri e funzionano in modo affidabile.

TL;DR: Il più facile: vista /print. Più flessibile: API JSON o userscript. CTRL+F funziona una volta che tutti i post sono caricati nel DOM. Spero che il team di Discourse veda questo e magari consideri un’opzione di “ricerca completa” un giorno: è un serio problema di UX per chiunque faccia ricerca o legga a fondo gli argomenti :sweat_smile:

Quello script di Greasemonkey funziona?

L’hai fatto tu?

Per chiarire riguardo allo userscript che ho condiviso: l’ho scritto specificamente per funzionare con il forum che stavo usando, quindi potrebbero esserci alcune differenze nella struttura HTML se si tenta di adattarlo ad altri siti. Lo script funziona sui topic standard di Discourse che utilizzano il sistema di “Carica altri post” (lazy-load) cliccando automaticamente ripetutamente sul pulsante di caricamento finché tutti i post non vengono caricati nel DOM. Una volta caricati tutti i post, è possibile utilizzare CTRL+F del browser per cercare normalmente qualsiasi parola chiave.

Infatti, molte persone usano Tampermonkey/Greasemonkey da anni per gestire Discourse in questo modo, e funziona bene anche su forum molto grandi.

:warning: Nota: alcuni forum potrebbero cambiare la classe del pulsante (ad esempio, \.load-more\[data-more-url\]), quindi potrebbe essere necessario modificare leggermente il selettore per farlo corrispondere al pulsante effettivo.