GM_setValue和GM_getValue(Greasemonkey存储)的IE等效物

8

我写了一个脚本,在Firefox上运行没有问题。我正在使用setInterval()从iframe中检索一些来自外部域的数据,然后将它们插入页面。

我尝试使用Trixie在IE上运行,但是发现GM_getValue和GM_setValue函数未定义。

我添加了这些替换函数,基于cookie,但我无法以跨域方式使其工作:http://www.howtocreate.co.uk/operaStuff/userjs/aagmfunctions.js

cookie已创建并存储了数据,但只能从iframe访问,而不能从顶级文档访问。下面是我使用的基本结构:http://www.pastie.org/1889407
在test()中,我可以通过GM_getValue("destination","")访问存储的值,但在check()函数内部不起作用。

1)有没有办法使cookie跨域?

2)是否有其他方法以跨域方式在IE中存储数据?(我听说过Flash对象,但似乎不是很轻量级的解决方案...)其他实现这些函数(getValue和setValue)的方法非常难找。

3)我正在使用Trixie,也许这不是最好的解决方案,有什么建议使用哪个插件更好,以获得这些函数?


2
由于跨域安全性,Cookies 不会按设计工作。对于其余部分,您可以尝试“Greasemonkey for IE”扩展。另外,请查看IEScripts。 - Brock Adams
不幸的是,我已经测试了GM4IE、IE7Pro,它们都没有提供任何这样的方法。我也看过IEScripts,但我只能找到基于cookie的解决方案。 - Michael Lumbroso
1个回答

2

经过尝试多种解决方案,我终于找到了答案。

我使用了 IE7PRO,其中包括 PRO_setValue 和 PRO_getValue 函数,它们最终运行良好。

我的问题是我尝试在 iframe 上访问外部域,这显然不受 IE7PRO 支持。

我将脚本分成了两个用户脚本:一个用于我的域,检查是否有新的 PRO_getValue 可用,另一个用于外部域,保存数据。一个标签页用于我的页面,一个用于其他页面,令人惊讶的是,它像魅力一样工作。

使用 Trixie 或 GM4IE 似乎不可能,唯一的缺点是 IE7PRO 很重,因为 GM 脚本支持只是此扩展的一小部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接