在 Greasemonkey 中存储数据以供以后重用

在 Greasemonkey 中存储数据以供以后重用

我想在 Blogspot 统计信息中的所有链接旁边添加一个删除/黑名单按钮。其中一些是引荐来源垃圾邮件,我想永久删除它们。到目前为止,我使用这种 jQuery 选择器选择它们:

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

但我希望它更加灵活,因为我必须为每个新域手动编辑脚本。

答案1

要存储数据以供以后重用,您可以使用GM_setValue 函数GM_getValue()
这两个函数具有独特的优势,它们可以跨多个域存储数据。现在这个优势globalStorage已经过时了,它们是实现这一目标的唯一方法。

或者你也可以使用本地存储或 cookie,但是这些可能不能满足您的需要,因为它们一次只能对一个域起作用。

如果你尝试GM_setValue(),你可能需要使用公用事业GM_SuperValue相反,由于GM_setValue()本身不能很好地存储除字符串以外的任何内容。


然而,在这个特殊的例子中,为每个站点在脚本中添加一行可能会更好,因为:

  1. 如果您的示例很典型,则每个站点只有一个新行(不包括任何特定于站点的@include指令)。
  2. 您需要存储代码以及数据。
    例如,在问题中,你不仅使用了选择器'a[href*="referer.spam.domain"]'),而且关系.closest("li"))。这两项可能都必须存储。
    存储这些内容的复杂程度更高,在本例中可能没有必要。
  3. 它并不像“存储数据”那么简单。您还需要添加、列出、编辑和删除值的方法。如果您想正确执行此操作,则需要编写更多代码。但您可以使用以下实用程序“脚本选项对话框”以帮助用户界面。

相关内容