tamper - Greasemonkey+jQuery: utilizando GM_setValue() dentro de un evento de devolución de llamada
tampermonkey security risk (3)
Estoy tratando de establecer los datos en el almacenamiento a largo plazo en un script de GreaseMonkey, excepto que GM_setValue () parece fallar silenciosamente:
$("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
Creo que este es un problema de seguridad específico de Greasemonkey. Por favor, consulte 0.7.20080121.0 compatibilidad . GM no permite que las páginas de los usuarios llamen a las API de GreaseMonkey, y eso es lo que está haciendo allí (está registrando un manejador de clics con JQuery ejecutándose en el contexto del usuario). Una solución alternativa también se da en esa página.
Puedes usar esta solución.
$("a#linkid").click(function()
{
//setValue
setTimeout(GM_setValue("foo", 123),0);
//getValue
setTimeout(GM_getValue("foo"),0);
});
Tuve el mismo tipo de problema ...
La solución anterior no funcionaba para mí y encontré una solución como esta ...
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");
});