Armazene dados para reutilização posterior no Greasemonkey

0

Gostaria de adicionar um botão remover / lista negra ao lado de todos os links nas estatísticas do Blogspot. Alguns deles são spam de referenciadores e eu gostaria de removê-los para sempre. Até agora eu estou selecionando-os usando esse tipo de seletor jQuery:

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

mas gostaria que fosse mais flexível, porque tenho de editar manualmente o script para cada novo domínio.

    
por alecail 11.05.2012 / 17:37

1 resposta

1

Para armazenar dados para reutilização posterior, você usaria a função GM_setValue , bem como GM_getValue () .
Essas duas funções têm a vantagem exclusiva de armazenar dados em vários domínios. Agora que globalStorage está obsoleto, eles são o único método para fazer isso.

Ou você também pode usar localStorage ou cookies, mas eles podem não permitir o que você deseja porque eles só funcionam para um domínio de cada vez.

Se você tentar GM_setValue() , provavelmente precisará fazer isso usando GM_SuperValue utilities , já que GM_setValue() , por si só, não faz um bom trabalho de armazenar nada além de strings.

No entanto, neste caso específico, adicionar uma linha ao script de cada site pode ser melhor porque:

  1. Se o seu exemplo é típico, é apenas uma nova linha por site (sem contar as diretivas @include específicas do site).
  2. Você precisa armazenar código , além de dados.
    Por exemplo, na pergunta, você está usando não apenas o seletor ( 'a[href*="referer.spam.domain"]' ), mas também o relacionamento ( .closest("li") ). Ambas presumivelmente teriam que ser armazenadas.
    Armazenar este é um novo nível de complexidade que provavelmente não é garantido neste caso.
  3. Não é tão simples quanto apenas "armazenar dados". Você também precisará de maneiras de: Adicionar, Listar, Editar e Excluir valores. Isso é muito mais código se você quiser fazer certo. Mas você pode usar utilitários como o "Diálogo de Opções de Script" para ajudar na interface do usuário.
por 13.05.2012 / 09:44