6

是否可以使用 Greasemonkey 脚本跨域存储数据?我想允许从使用相同 Greasemonkey 脚本的多个网站访问 Javascript 对象。

4

2 回答 2

10

是的,这就是它的目的之一GM_setvalue(),它存储数据、每个脚本和跨域。

请注意,沼泽标准GM_setValue()有些问题。它可以使用大量全局资源或导致脚本实例崩溃。

以下是一些指导方针:

  1. 请勿GM_setValue()用于存储字符串以外的任何内容。对于其他任何事情,请使用序列化程序,例如GM_SuperValue。即使是看起来很无辜的整数也可能导致默认值GM_setValue()崩溃。

  2. 与其存储大量小变量,不如将它们包装在一个对象中并使用其中一个序列化程序存储它可能会更好。


最后请注意,localStorage它在 javascript 中具有特定含义,并且localStorage 特定于域的。

于 2012-12-15T07:00:09.730 回答
-1

http://wiki.greasespot.net/GM_setValue

foo = "This is a string";

GM_setValue('myEntry', foo);

http://wiki.greasespot.net/GM_getValue

bar = GM_getValue('myEntry');

bar = GM_getValue('myOtherEntry', "default value if no value was found");

http://wiki.greasespot.net/GM_deleteValue

GM_deleteValue('myEntry');

GM_deleteValue('myOtherEntry');

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

foo = "this is a string";

localStorage.setItem('myEntry', foo);

bar = localStorage.getItem('pointer') || "default value";

localStorage.removeItem('myEntry');

要不就...

localStorage.myEntry = "this is a string";

bar = localStorage.myEntry;
于 2014-03-20T22:02:59.367 回答