使用的是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#
一些参考资料:跨域
基于 HTML5 中的 Web SQL Database 来构建应用程序
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,解决。