CEF JS实现获取剪贴板图片的DataURL
转载:https://www.deanhan.cn/js-paste-upload.html
转载:https://segmentfault.com/a/1190000002915597
转载:https://www.cnblogs.com/dcb3688/p/4610638.html
转载:https://blog.csdn.net/dongyuxu342719/article/details/83754352
项目开发中遇到一个需求,需要在CEF浏览器当中使用快捷键显示用QQ、微信等截图工具的截屏图片。
<!DOCTYPE html>
<html>
<head></head>
<body>
<div id="preview" class="preview"></div>
<textarea id="result" style="width:800px; height:600px; resize:none"></textarea>
<script>
var body = document.getElementsByTagName('body')[0];
body.addEventListener('paste', function(e){
var clipboard = e.clipboardData;
var type = clipboard.items[0].type;
if (type.match(/image/)) {
var blob = clipboard.items[0].getAsFile();
var file = new FileReader();
file.addEventListener('loadend', function(e){
document.getElementById('result').value = e.target.result;
});
file.readAsDataURL(blob);
} else {
//document.getElementById('result').value = "not an image\ntype: " + type + "\n\n";//图片base64编码
preview.innerHTML = '<img src="' + e.target.result + '">';//img便签显示剪切板图片
}
});
</script>
</body>
</html>
给body添加一个paste事件,会在粘贴时触发,粘贴有关的信息都会随着e传入回调函数。e是一个ClipboardEvent,获取它的clipboardData,就可以通过一系列操作取出数据。
首先检查一下粘贴数据的类型,如果是图片则取出Blob对象,再用FileReader去读取,结果就是DataURL了。
如果不是图片,直接打印提示信息。
粘贴一段文本的效果:
这里需要注意的是,paste是在粘贴前触发的,所以文本会在提示信息打印后被粘贴到文本框里(粘贴的默认行为)。如果需要取消这种默认行为,可以用 e.preventDefault() 。
效果:

CEF JS实现获取剪贴板图片的DataURL的更多相关文章
- 使用Javascript获取剪贴板图片的DataURL
最近写博客需要插入一些截图,想着用DataURL会方便点,于是需要一个把图片转成DataURL的工具.搜索一番后发现这个功能用HTML就能实现,通过paste事件. 先尝试在Chrome上实现,Chr ...
- JS获取剪贴板图片之后的格式选择与压缩问题
前言 某年某月的某一天,突然发现博客服务器上上传的图片都比较大,一些很小的截图都有几百kb,本来服务器带宽就慢,不优化一下说不过去. 问题细述 特别说明:本文代码因为只是用于我自己后台写markdow ...
- js 怎样获取div 图片等的宽度,只要值,不要px
给你的div命名id=“abc”,js中用下面的语句就能获取到js的宽度并赋值给a a=document.all.abc.offsetWidth; 然后通过 alert(a); 就能弹出这个值来了.
- JS获取IMG图片高宽
前段时间在LJW写的touchslider.js轮播代码里添加自适应屏幕大小的功能时,遇到一个问题.不管用什么样的方法都无法获取到IMG标签的高宽,最后只有给图片定一个高宽的比例值:趁今天有空我就写了 ...
- 为什么不能用 JS 获取剪贴板上的内容?
为什么不能用 JS 获取剪贴板上的内容? 为什么不能用 JS 获取剪贴板上的内容? 发一串口令给朋友朋友复制这串口令,然后访问你的网站你在网站上用 JS 读取朋友剪贴板上的口令根据不同的口令,显示不同 ...
- JS快速获取图片宽高的方法
快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器. 我们一步一 ...
- 转载:JS快速获取图片宽高的方法
快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器. 我们一步一 ...
- js生成word中图片处理
首先功能是要求前台导出word,但是前后台是分离的,图片存在后台,所以就存在跨域问题. 导出文字都是没有问题的(jquery.wordexport.js),但是导出图片就存在问题了: 图片是以链接形式 ...
- 前端js保存页面为图片下载到本地
前端js保存页面为图片下载到本地 手机端点击下载按钮将页面保存成图片到本地 前端js保存页面为图片下载到本地的坑 html2canvas 识别 svg 解决方案 方案 html2canvas.js:可 ...
随机推荐
- express 随笔
#express 1.使用Express 应用生成器 npm install express-generator -g 2.创建一个命名为 myapp 的应用 express myapp 3.安装所有 ...
- /etc/init.d/sshd配置SSHD路径忘记修改导致启动失败
[root@lnlte2dmr3 ~]# bash[root@lnlte2dmr3 ~]# install -v -m700 -d /var/empty/sshdinstall: 正在创建目录&quo ...
- APICloud开发者进阶之路 | txLive模块(直播类)试用分享
本文出自APICloud官方论坛,感谢论坛版主uoaccw的分享 txLive 模块封装了腾讯云直播服务 https://docs.apicloud.com/Client-API/Open-SDK/t ...
- Windows bat批处理使用
mkdir commonmkdir datamkdir savemkdir data\tsushima_m_mapmkdir save\tsushima_m_map msxsl ..\common\r ...
- vue中用ajax上传文件
直接上代码 <input class="file-btn" type="file" @change="uploadCompany($event) ...
- AOP代理对象生成
AOP(Aspect-OrientedProgramming,面向方面编程)是OOP(Object-Oriented Programing,面向对象编程)的良好补充与完善,后者侧重于解决 从上到下的存 ...
- c语言中对于移位运算符的用法
//1 << 0 是把1 按2进制 左移0位,结果还是 1 ,2进制 0000 0001 //1 << 1, 是把1 按2进制 左移1位,结果是2,2进制 0000 0010 ...
- Oracle创建新undo表空间最佳实践(包含段检查)
在处理一则ORA-600 [4194]案例时,参考MOS文档:Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ...
- matlab——之class类(详细总结)
https://blog.csdn.net/qinze5857/article/details/80545885 开篇:搜了一下网上介绍matlab的class类,信息不全,且总结不全面,于是单独he ...
- [macOS] Mojave10.14 夜神安卓模拟器启动问题
废话不多说,其它的都有在这里讨论: https://bbs.yeshen.com/forum.php?mod=viewthread&tid=8566 我的最终解决办法是,virtualbox安 ...