是否可以使用Greasemonkey脚本跨域存储数据?我想允许从使用相同Greasemonkey脚本的多个网站访问Javascript对象。
答案 0 :(得分:9)
是的,这是GM_setvalue()
的目的之一,它存储数据,每个脚本和跨域。
请注意,沼泽标准GM_setValue()
有些问题。它可能会使用大量全局资源或导致脚本实例崩溃。
以下是一些指导原则:
不要使用GM_setValue()
来存储除字符串之外的任何内容。对于其他任何事情,请使用序列化程序,例如GM_SuperValue。即使看起来无辜的整数也会导致默认GM_setValue()
崩溃。
不是存储大量小变量,最好将它们包装在一个对象中并使用其中一个序列化程序存储它。
最后请注意,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;