CefBrowser 複製圖片解決辦法

使用的是CefSharp控件,開放出的功能比較多,可是仍是有一些封閉的。例如複製圖片到Clipbord,庫沒有提供。javascript

VC雖然看得懂,但託管代碼沒搞過,看得很蛋痛,並且若是有CefSharp有新版本還要改,因而曲線解決。html

先說IE,其有RangeControl,能夠複製,但Chrome和Firefox都不支持,固然後兩者均可以複製圖片。html5

問題主要緣由,是不知道怎樣比緩存提取圖片。固然能夠從新下載,但這樣就沒意義,如驗證碼或尺寸大的圖片,從新下載不合要求。由於CefSharp就是Chrome,有一個工具能夠查看緩存,但沒有找到其源碼。不清楚緩存格式,沒法提存,猜多是一種小開型數據庫,例如Sqlite等,由於看devTools的資源部分,頗有數據庫管理器的影子。java

還有一種辦法是截屏,但這不是正路,如圖片被遮擋或縮放時。web

 

Javasciprt剪貼板不能用,緩存又沒辦法查看,這個問題困擾了很久。sql

 

最後找到一種辦法,用Canvas標籤。數據庫

相關資料:   HTML 5 <canvas> 標籤   HTML 5 Canvas  HTML 5 Canvas 參考手冊  HTML DOM Canvas 對象  The canvas element  canvas

最後用javascript 反調 c# 註冊的對象,傳回buffer數據,但若是圖片大一些,耗時會不少,個人300*100的圖片要1秒多,只是一種暫時的方法,最好仍是能夠讀緩存。c#

 

一些參考資料:跨域

Managing application storage 

基於 HTML5 中的 Web SQL Database 來構建應用程序 

HTML5 LocalStorage 本地存儲 

HTML5開發學習(2):本地存儲之localStorage 、sessionStorage、globalStorage

HTML5開發學習(3):本地存儲之Web Sql Database(附源碼) 

W3C Web SQL Database  Web SQL databases 搜索 

 

 出現 SECURITY_ERR:DOM Exception 18 異常:

在本地調試時,會出現這個問題,安全性錯誤,實際上是JS跨域訪問錯誤,由於以前是運行的客戶端嵌入的JS,將UniversalAccessFromFileUrlsAllowed 設置爲true,只能使本機的調試網頁能夠,但訪問外網時,當圖片和網站不一致,還會報錯,由於自己是嵌入使用瀏覽器,設置 WebSecurityDisabled=true,解決。

 SECURITY_ERR:DOM Exception 相關:  之一之二

相關文章
相關標籤/搜索