我正在尝试在 GreaseMonkey 脚本中将数据设置为长期存储,但 GM_setValue() 似乎静默失败:
$("a#linkid").click(function()
{
GM_setValue("foo", 123); // doesn't work, but does not generate error
});
GM_setValue("bar", 123); // works properly, value is set
我正在尝试在 GreaseMonkey 脚本中将数据设置为长期存储,但 GM_setValue() 似乎静默失败:
$("a#linkid").click(function()
{
GM_setValue("foo", 123); // doesn't work, but does not generate error
});
GM_setValue("bar", 123); // works properly, value is set
我认为这是一个特定的 Greasemonkey 安全问题。请参阅0.7.20080121.0 兼容性。GM 不允许用户页面调用 GreaseMonkey API,这就是您在那里所做的(您正在使用在用户上下文中运行的 JQuery 注册一个单击处理程序)。该页面上还提供了一种解决方法。
我有同样的问题......
以前的解决方案对我不起作用,我找到了这样的解决方案......
function gmGet(name) {
var theValue = GM_getValue(name);
return theValue;
}
function gmSet(name, valuee) {
GM_setValue(name, valuee);
}
$("a#linkid").click(function(){
//setValue
gmSet("foo", 123);
//getValue
gmGet("foo");
});
您可以使用此解决方案。
$("a#linkid").click(function()
{
//setValue
setTimeout(GM_setValue("foo", 123),0);
//getValue
setTimeout(GM_getValue("foo"),0);
});