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 相关:  之一之二

相关文章
相关标签/搜索