javascript实现粘贴qq截图功能(clipboardData)


Posted in Javascript onMay 29, 2016

这篇文章主要介绍了在网页中实现读取剪贴板粘贴截图功能,即可以把剪贴板的截图Ctrl+V粘贴到网页的一个输入框中,例如QQ截图、旺旺截图或者其它截图软件。具体代码如下。

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>利用 clipboardData 在网页中实现截屏粘贴的功能</title>
<style type="text/css">
#box{ width:200px; height:200px; border:1px solid #ddd; }
</style>
</head>
<body>

<h1>利用 clipboardData 在网页中实现截屏粘贴的功能</h1>  
<hr />
<div><input type="text" id="testInput" placeholder="截屏后粘贴到输入框中" size="30" /></div>
<script type="text/javascript">
(function(){
  var imgReader = function( item ){
    var blob = item.getAsFile(),
      reader = new FileReader();
    // 读取文件后将其显示在网页中
    reader.onload = function( e ){
      var img = new Image();

      img.src = e.target.result;
      document.body.appendChild( img );
    };
    // 读取文件
    reader.readAsDataURL( blob );
  };
  document.getElementById( 'testInput' ).addEventListener( 'paste', function( e ){
     // 添加到事件对象中的访问系统剪贴板的接口
    var clipboardData = e.clipboardData,
      i = 0,
      items, item, types;

    if( clipboardData ){
      items = clipboardData.items;
      if( !items ){
        return;
      }
      item = items[0];
      // 保存在剪贴板中的数据类型
      types = clipboardData.types || [];
      for( ; i < types.length; i++ ){
        if( types[i] === 'Files' ){
          item = items[i];
          break;
        }
      }
      // 判断是否为图片数据
      if( item && item.kind === 'file' && item.type.match(/^image\//i) ){
        imgReader( item );
      }
    }
  });
})(); 
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家学习JavaScript程序设计有所帮助。

Javascript 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
javascript 一段左右两边随屏滚动的代码
Jun 18 Javascript
IE6下focus与blur错乱的解决方案
Jul 31 Javascript
JS 如果改变span标签的是否隐藏属性
Oct 06 Javascript
js实现创建删除html元素小结
Sep 30 Javascript
分享自己用JS做的扫雷小游戏
Feb 17 Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 Javascript
bootstrap table服务端实现分页效果
Aug 10 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
Nov 29 Javascript
解决vue数组中对象属性变化页面不渲染问题
Aug 09 Javascript
vue实现搜索功能
May 28 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
Sep 11 Javascript
js剪切板应用clipboardData实例解析
May 29 #Javascript
js实现可控制左右方向的无缝滚动效果
May 29 #Javascript
原生JavaScript编写canvas版的连连看游戏
May 29 #Javascript
js省市县三级联动效果实例
Apr 15 #Javascript
js实现精确到秒的倒计时效果
May 29 #Javascript
解读Bootstrap v4 sass设计
May 29 #Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 #Javascript
You might like
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
php设计模式之委托模式
2016/02/13 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
浏览器常用高宽的jquery插件
2011/02/24 Javascript
javascript时间差插件分享
2016/07/18 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
Python松散正则表达式用法分析
2016/04/29 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
python实现简易学生信息管理系统
2020/04/05 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
学校后勤人员职责
2013/12/27 职场文书
八一建军节部队活动方案
2014/02/04 职场文书
租房协议书
2014/09/12 职场文书
还款承诺书范本
2015/01/20 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
爱护环境建议书
2015/09/14 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
python 通过使用Yolact训练数据集
2021/04/06 Python
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android