我有一个Greasemonkey脚本,它使用GM_setValue()
将数字ID列表保存为分隔字符串。该脚本使用此列表过滤掉公告板上的项目。
我试图弄清楚使这个脚本适用于多个域的最佳方法,因此每个域都有自己的ID列表。现在,如果我过滤ID" 12345"在一个网站上,它也将在每个其他网站上过滤。
我意识到我可以将域附加到每个ID并搜索ID +域的组合,但我更喜欢节省空间,除非它是我唯一的选择。理想情况下,我为每个域都有一个单独的变量。
答案 0 :(得分:0)
您可以使用location.hostname
获取域名,然后生成一个用于GM_setValue
和GM_getValue
的密钥。之后,其余代码都是一样的。
例如:
// ==UserScript==
// @name _Store and retrieve a comman var that's unique to each domain
// @include http://DOMAIN_1.COM/YOUR_PATH/*
// @include http://DOMAIN_2.COM/YOUR_PATH/*
// @include http://DOMAIN_3.COM/YOUR_PATH/*
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
var storageKey = "IDs_" + location.hostname;
var idList = GM_getValue (storageKey, "");
console.log ("This site's list was: ", idList);
idList += ",7";
GM_setValue (storageKey, idList);
这会为您访问的每个域保留一个单独的idList
(与@ include,@ match和@exclude指令匹配)。