从Greasemonkey脚本访问getImageData

时间:2011-10-02 22:35:51

标签: html5 greasemonkey allow-same-origin

我想实现一个Greasemonkey脚本,它扫描页面上的每个图像并根据图像内容进行一些操作。我将使用Canvas对象的getImageData方法来获取图像内容。

当我使用FireFox测试我的用户脚本时,我收到“安全错误”异常,这意味着用户脚本无法访问原始页面的图像。

有没有解决方法? 用户脚本正在使用什么安全上下文?

感谢。

1 个答案:

答案 0 :(得分:1)

这可能是由于same origin policy。如果您尝试操作来自托管网站的域以外的域中的图像,则会收到安全错误。

可以解决此问题,方法是使用代理Web服务器通过base64编码的字符串为您提供图像数据。有一个jQuery插件available here默认情况下会使用Google来为您提供字符串,但它仅限于每天一定量的流量,因此开箱即用是不可靠的。您可以在自己的服务器上使用他们的代码(在页面底部链接)来绕过它(我已经取得了巨大的成功)。