2012-03-18 75 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