Memorizza i dati per un successivo riutilizzo in Greasemonkey


0

Vorrei aggiungere un pulsante Rimuovi / Lista nera accanto a tutti i link nelle statistiche di Blogspot. Alcuni di loro sono spam di riferimento e vorrei rimuoverli per sempre. Finora li sto selezionando usando questo tipo di selettore jQuery:

$('a[href*="referer.spam.domain"]').closest("li").hide();

ma mi piacerebbe che fosse più flessibile, perché devo modificare manualmente lo script per ogni nuovo dominio.

Risposte:


1

Per memorizzare i dati per il riutilizzo successivo, si utilizzerà la funzione GM_setValue così come GM_getValue () .
Queste due funzioni hanno il vantaggio esclusivo di archiviare i dati su più domini. Ora che globalStorage è obsoleto, sono l'unico metodo per farlo.

O potresti anche usare memoria locale o cookie, ma questi potrebbero non consentire quello che vuoi perché funzionano solo per un dominio alla volta.

Se provi GM_setValue(), probabilmente dovrai farlo usando il GM_SuperValue utilità invece, da GM_setValue(), di per sé, non fa un buon lavoro di memorizzare qualsiasi cosa tranne le stringhe.


Però, in questo caso particolare, aggiungere una riga allo script per ogni sito potrebbe essere migliore perché:

  1. Se il tuo esempio è tipico, è solo una nuova riga per sito (senza contare le specifiche del sito @include direttive).
  2. Devi conservare codice così come i dati.
    Ad esempio, nella domanda, stai usando non solo il selettore ( 'a[href*="referer.spam.domain"]' ), ma anche il relazione ( .closest("li") ). Entrambi dovrebbero presumibilmente essere archiviati.
    La memorizzazione di questo è un nuovo livello di complessità che probabilmente non è giustificato in questo caso.
  3. Non è così semplice come "memorizzare dati". Avrete anche bisogno di modi per: aggiungere, elencare, modificare ed eliminare i valori. Questo è molto più codice se vuoi farlo bene. Ma puoi usare utilità come "Finestra di dialogo Script Options" per aiutare con l'interfaccia utente.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.