3

我正在尝试在 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
4

3 回答 3

9

我认为这是一个特定的 Greasemonkey 安全问题。请参阅0.7.20080121.0 兼容性。GM 不允许用户页面调用 GreaseMonkey API,这就是您在那里所做的(您正在使用在用户上下文中运行的 JQuery 注册一个单击处理程序)。该页面上还提供了一种解决方法。

于 2009-05-14T00:25:48.990 回答
2

我有同样的问题......

以前的解决方案对我不起作用,我找到了这样的解决方案......

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");
});
于 2012-02-18T07:21:49.843 回答
1

您可以使用此解决方案。

$("a#linkid").click(function()
{
    //setValue
    setTimeout(GM_setValue("foo", 123),0);

   //getValue
   setTimeout(GM_getValue("foo"),0);
});
于 2010-07-21T02:48:38.873 回答