2012-03-18 34 views
2

我期待探索编写一个简单的greasemonkey脚本/铬脚本的可行性,以将浏览器窗口中加载的所有图像转换为灰度/黑色和白色。最终目标是执行更复杂的图像处理。我希望做的是写一个脚本来添加含有像一个onload函数如下:用户脚本来处理图像onload

var images = document.getElementsByTagName("img"); 
for (var i = 0; i < images.length; ++i) { 
    filter(images[i]); 
} 

我知道这样的事情可以在页面从加载(即内置于同一域中进行网站UI逻辑),但从我读过的和我已经完成的一些早期实验(使用html5画布),我想知道是否可以通过插件从客户端执行,因为跨域问题和其他问题。任何人都可以告诉我,如果这是一个可行的项目,是否有任何教程或类似的项目,我可以用作参考?

谢谢。

+0

对另一个线程的引用使我认为这可能无法实现为简单的客户端脚本:http://stackoverflow.com/questions/8128118/get-security-error-when-saving- canvas-object-in-a-image – 2012-03-18 22:08:25

回答

2

我会说,如果你有这个脚本的目的,这将是可行的,使userscript。

我建议你看看this link,因为我想它会帮助你巨大。

+0

感谢您的回应。然而,我询问这个​​项目的可行性的原因之一是,当我实现链接中描述的方法时,在调试窗口中出现以下两个错误,并且脚本不起作用: “Unable to get image来自画布的数据,因为画布已被交叉源数据污染。“ “未捕获的错误:SECURITY_ERR:DOM异常18”。我看到的唯一方法,试图绕过这个问题也似乎产生类似的错误,所以我不知道我想要做的是超出JavaScript和浏览器限制的限制。 – 2012-03-18 21:58:20

+0

我做了一些更多的研究,看起来可能由于浏览器的限制而无法使用,您正在测试的浏览器是什么? – Bigandrewgold 2012-03-19 00:02:32

+0

我已经在Chrome和Firefox上测试过了。我可以看到在没有代理服务器的情况下解决这个问题的唯一可靠方法是禁用浏览器启动时的限制(即chrome --disable-web-security或类似的firefox),这对于插件显然不适用。感谢您查看这个。我想这可能不太可行。 – 2012-03-19 00:25:09