Хранить данные для последующего повторного использования в Greasemonkey

Я хотел бы добавить кнопку удаления / черного списка рядом со всеми ссылками в статистике Blogspot. Некоторые из них являются ссылками на спам, и я хотел бы удалить их навсегда. Пока что я выбираю их с помощью такого селектора jQuery:

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

но я бы хотел, чтобы он был более гибким, потому что мне нужно вручную редактировать скрипт для каждого нового домена.

1 ответ

Решение

Чтобы сохранить данные для последующего повторного использования, вы должны использовать функцию GM_setValue, а также GM_getValue ().
Эти две функции имеют уникальное преимущество в том, что они хранят данные в нескольких доменах. Теперь, когда globalStorage устарели, они единственный способ сделать это.

Или вы также можете использовать localStorage или куки, но они могут не разрешать то, что вы хотите, потому что они работают только для одного домена за один раз.

Если вы попытаетесь GM_setValue()вам, вероятно, потребуется сделать это, используя GM_SuperValue утилиты вместо, так как GM_setValue()сам по себе не очень хорошо хранит ничего, кроме строк.


Однако в этом конкретном случае лучше добавить строку в скрипт для каждого сайта, потому что:

  1. Если ваш пример типичен, это только одна новая строка на сайт (не считая каких-либо конкретных сайтов) @include директивы).
  2. Вы должны хранить код, а также данные.
    Например, в вопросе вы используете не только селектор ('a[href*="referer.spam.domain"]'), но и отношения (.closest("li")). Оба из них, вероятно, должны быть сохранены.
    Хранение этого - новый уровень сложности, который, вероятно, не оправдан в этом случае.
  3. Это не так просто, как "хранение данных". Вам также понадобятся способы: Добавить, Список, Изменить и Удалить значения. Это намного больше кода, если вы хотите сделать это правильно. Но вы можете использовать такие утилиты, как "Script Options Dialog", чтобы помочь с пользовательским интерфейсом.
Другие вопросы по тегам