使用的是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 相关:  之一之二

CefBrowser 复制图片解决办法的更多相关文章

  1. Hexo + VSCode 插入 Markdown 图片解决办法

    最近打开 typora 时发现弹窗强更,不让用 beta 版了 想到自己并不是非常需要 WYSIWYG,而且也不是经常使用 typora,于是直接退回到 VSCode 了,而且在 VSCode 里可以 ...

  2. 用微软官方的 HTML Help Workshop制作的CHM文件不显示图片解决办法

    制作CHM文档,方便小巧还易于查看,用处自不必多说了,最近想把这个季度所学习的内容全部制作成CHM格式文档,给自己后续用来温故而知新,同时也可以做为后起之秀避坑法宝.但是在生成CHM文档之后发现有些地 ...

  3. VMware虚拟机与宿主无法复制的解决办法

    由于工作需要,上网机器使用虚拟机,因此需要经常来回的拷贝文件,而vmware从6.5一直走来到10.0.1,总是有一个问题很让人苦恼---共享粘贴板总是会无故失效.经常实验,发现可以经过以下方法临时解 ...

  4. 主机与虚拟机Oracle VM VirtualBox不能拖动复制的解决办法

    先将虚拟机系统关机,然后打开Oracle VM VirtualBox管理器: 第一步: 常规高级里共享粘贴板已经选中双向 第二步: 虚拟机设置-存储-控制器SATA(或IDE)-勾选"使用主 ...

  5. Kali/Ubuntu无法和物理机之间复制粘贴解决办法

    Vmware安装Linux,传统的vmtools已经被抛弃,当前建议使用Open-VM-tools 安装Open-VM-tools//Kali,Ubuntu: sudo apt install Ope ...

  6. windwos服务器 无法与本地电脑进行复制粘贴解决办法

    之前复制粘贴功能可以使用  现在突然间不能使用了 1.打开任务管理器,查看进程,如果有 rdpclip.exe 进程,先关闭该进程2.开始->运行->rdpclip.exe,重新运行此程序 ...

  7. Wordpress 外网访问时不显示图片解决办法

    我的云服务器是 :windows2012R 打开命令行: 进入到mysql中 show databases; //查看你Wordpress使用的数据库是否存在 use blog; //例如你使用的数据 ...

  8. 360doc的文章不能复制的解决办法

    按F12打开控制台,执行: document.body.oncopy=null;

  9. win10文件名或文件路径过长导致无法删除或复制的解决办法

    试过了百度上的所有方法,命令行中del没有作用,Unlocker也没用,批处理也不起作用,360的强力删除也没有作用. 最后找到一种方法,在压缩该文件的时候选择删除源文件. 但是需要注意一点,用360 ...

随机推荐

  1. mseed2sac的安装和使用

    由于使用rdseed提取mseed文件到SAC文件会遇到一个问题就是: 同时需要dataless文件: 因此如果下载的数据中恰巧没有dataless文件,则需要用另外一种方式:mseed2sac 现在 ...

  2. 利用calc计算宽度

    width:calc(100% - 40px)可用 + - * / 进行计算(ie9+) 注:计算符号前后必须跟上空格.

  3. 对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决

    在J2EE框架下开发web网站,这种问题经常遇到,只要我们网上搜一下,就可以看到很多版本的,我整理一下: 第一种可能性解决:看看我的项目:主要 是里面的Structs 1.3 (structs 2)和 ...

  4. 中小网站如何使用谷歌Adsence国际化优势赚钱?

    劲捷电子信息有限公司是一家拿了美国风险投资的互联网公司.他的创办人祁劲松2005年加入AdSense,迄今收获颇丰,为此他还写了一本 <Google AdSense实战宝典>.在祁劲松看来 ...

  5. Python的平凡之路(16)

    一.HTML+CSS补充 0.常用页面布局 <!DOCTYPE html> <html lang="en"><head> <meta ch ...

  6. 每日总结 -----把人家代码干掉了 我恨git

    今天搞了下午git,写完代码commit之后,pull完发现没法push,说是和origin有分支,然后自己查资料又是reset又是rebase的,commit之后发现自己改动的代码几乎没有被提交上去 ...

  7. 【Python】str类方法说明

    #capitalize():字符串首字符大写 string = 'this is a string.'new_str = string.capitalize()print(new_str)#输出:Th ...

  8. Integer to Roman -- LeetCode 012

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  9. GitHub菜鸟日志1——20160531

    好吧,事实上很早就知道有github这个东西了,然而就有一种莫名的力量一直阻止着我向这“未知的领域”涉足(which is called lazy). 然后,前略...总之,默默的就开始了github ...

  10. SqlServer性能优化 自定义动化性能收集(四)

    配置数据收集器: 1.创建登录名并映射角色 2.配置管理数据仓库 3.创建收集组.收集项----MSDB数据存储   sp_syscollector_create... 4.自动配置相关job 具体步 ...