• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

网助的工作随记

软件设计和编码,欢迎同好者 ^_^
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

CefBrowser 复制图片解决办法

使用的是CefSharp控件,开放出的功能比较多,但是还是有一些封闭的。例如复制图片到Clipbord,库没有提供。

VC虽然看得懂,但托管代码没搞过,看得很蛋痛,而且如果有CefSharp有新版本还要改,于是曲线解决。

先说IE,其有RangeControl,可以复制,但Chrome和Firefox都不支持,当然后二者都可以复制图片。

问题主要原因,是不知道怎样比缓存提取图片。当然可以重新下载,但这样就没意义,如验证码或尺寸大的图片,重新下载不合要求。因为CefSharp就是Chrome,有一个工具可以查看缓存,但没有找到其源码。不清楚缓存格式,无法提存,猜可能是一种小开型数据库,例如Sqlite等,因为看devTools的资源部分,很有数据库管理器的影子。

还有一种办法是截屏,但这不是正路,如图片被遮挡或缩放时。

 

Javasciprt剪贴板不能用,缓存又没办法查看,这个问题困扰了好久。

 

最后找到一种办法,用Canvas标签。

相关资料:   HTML 5 <canvas> 标签   HTML 5 Canvas  HTML 5 Canvas 参考手册  HTML DOM Canvas 对象  The canvas element  

最后用javascript 反调 c# 注册的对象,传回buffer数据,但如果图片大一些,耗时会很多,我的300*100的图片要1秒多,只是一种暂时的方法,最好还是可以读缓存。

 

一些参考资料:

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

posted on 2013-11-13 19:29  网助  阅读(4729)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3