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秒多,只是一种暂时的方法,最好还是可以读缓存。
一些参考资料:
基于 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,解决。
SECURITY_ERR:DOM Exception 相关: 之一、之二
CefBrowser 复制图片解决办法的更多相关文章
- Hexo + VSCode 插入 Markdown 图片解决办法
最近打开 typora 时发现弹窗强更,不让用 beta 版了 想到自己并不是非常需要 WYSIWYG,而且也不是经常使用 typora,于是直接退回到 VSCode 了,而且在 VSCode 里可以 ...
- 用微软官方的 HTML Help Workshop制作的CHM文件不显示图片解决办法
制作CHM文档,方便小巧还易于查看,用处自不必多说了,最近想把这个季度所学习的内容全部制作成CHM格式文档,给自己后续用来温故而知新,同时也可以做为后起之秀避坑法宝.但是在生成CHM文档之后发现有些地 ...
- VMware虚拟机与宿主无法复制的解决办法
由于工作需要,上网机器使用虚拟机,因此需要经常来回的拷贝文件,而vmware从6.5一直走来到10.0.1,总是有一个问题很让人苦恼---共享粘贴板总是会无故失效.经常实验,发现可以经过以下方法临时解 ...
- 主机与虚拟机Oracle VM VirtualBox不能拖动复制的解决办法
先将虚拟机系统关机,然后打开Oracle VM VirtualBox管理器: 第一步: 常规高级里共享粘贴板已经选中双向 第二步: 虚拟机设置-存储-控制器SATA(或IDE)-勾选"使用主 ...
- Kali/Ubuntu无法和物理机之间复制粘贴解决办法
Vmware安装Linux,传统的vmtools已经被抛弃,当前建议使用Open-VM-tools 安装Open-VM-tools//Kali,Ubuntu: sudo apt install Ope ...
- windwos服务器 无法与本地电脑进行复制粘贴解决办法
之前复制粘贴功能可以使用 现在突然间不能使用了 1.打开任务管理器,查看进程,如果有 rdpclip.exe 进程,先关闭该进程2.开始->运行->rdpclip.exe,重新运行此程序 ...
- Wordpress 外网访问时不显示图片解决办法
我的云服务器是 :windows2012R 打开命令行: 进入到mysql中 show databases; //查看你Wordpress使用的数据库是否存在 use blog; //例如你使用的数据 ...
- 360doc的文章不能复制的解决办法
按F12打开控制台,执行: document.body.oncopy=null;
- win10文件名或文件路径过长导致无法删除或复制的解决办法
试过了百度上的所有方法,命令行中del没有作用,Unlocker也没用,批处理也不起作用,360的强力删除也没有作用. 最后找到一种方法,在压缩该文件的时候选择删除源文件. 但是需要注意一点,用360 ...
随机推荐
- mseed2sac的安装和使用
由于使用rdseed提取mseed文件到SAC文件会遇到一个问题就是: 同时需要dataless文件: 因此如果下载的数据中恰巧没有dataless文件,则需要用另外一种方式:mseed2sac 现在 ...
- 利用calc计算宽度
width:calc(100% - 40px)可用 + - * / 进行计算(ie9+) 注:计算符号前后必须跟上空格.
- 对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决
在J2EE框架下开发web网站,这种问题经常遇到,只要我们网上搜一下,就可以看到很多版本的,我整理一下: 第一种可能性解决:看看我的项目:主要 是里面的Structs 1.3 (structs 2)和 ...
- 中小网站如何使用谷歌Adsence国际化优势赚钱?
劲捷电子信息有限公司是一家拿了美国风险投资的互联网公司.他的创办人祁劲松2005年加入AdSense,迄今收获颇丰,为此他还写了一本 <Google AdSense实战宝典>.在祁劲松看来 ...
- Python的平凡之路(16)
一.HTML+CSS补充 0.常用页面布局 <!DOCTYPE html> <html lang="en"><head> <meta ch ...
- 每日总结 -----把人家代码干掉了 我恨git
今天搞了下午git,写完代码commit之后,pull完发现没法push,说是和origin有分支,然后自己查资料又是reset又是rebase的,commit之后发现自己改动的代码几乎没有被提交上去 ...
- 【Python】str类方法说明
#capitalize():字符串首字符大写 string = 'this is a string.'new_str = string.capitalize()print(new_str)#输出:Th ...
- 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 ...
- GitHub菜鸟日志1——20160531
好吧,事实上很早就知道有github这个东西了,然而就有一种莫名的力量一直阻止着我向这“未知的领域”涉足(which is called lazy). 然后,前略...总之,默默的就开始了github ...
- SqlServer性能优化 自定义动化性能收集(四)
配置数据收集器: 1.创建登录名并映射角色 2.配置管理数据仓库 3.创建收集组.收集项----MSDB数据存储 sp_syscollector_create... 4.自动配置相关job 具体步 ...