使用Greasemonkey脚本跨域的本地存储

时间:2012-12-15 06:32:26

标签: greasemonkey

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

2 个答案:

答案 0 :(得分:9)

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

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

以下是一些指导原则:

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

  2. 不是存储大量小变量,最好将它们包装在一个对象中并使用其中一个序列化程序存储它。


  3. 最后请注意,localStorage在javascript中具有特定含义,localStorage 特定于域名。

答案 1 :(得分:-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;