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 相关文章推荐
js获取单元格自定义属性值的代码(IE/Firefox)
Apr 05 Javascript
JavaScript中函数声明优先于变量声明的实例分析
Mar 01 Javascript
js完美的div拖拽实例代码
Jan 22 Javascript
jquery制作弹窗提示窗口代码分享
Mar 02 Javascript
jquery中post方法用法实例
Oct 21 Javascript
javascript制作的cookie封装及使用指南
Jan 02 Javascript
jQuery验证元素是否为空的两种常用方法
Mar 17 Javascript
跟我学习javascript的异步脚本加载
Nov 20 Javascript
Ajax 加载数据 练习代码
Jan 05 Javascript
Angular使用动态加载组件方法实现Dialog的示例
May 11 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
Jun 15 Javascript
详解vue-router的Import异步加载模块问题的解决方案
May 13 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
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
jquery text()要注意啦
2009/10/30 Javascript
js function定义函数使用心得
2010/04/15 Javascript
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
django框架cookie和session用法实例详解
2019/12/10 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
const和static readonly区别
2013/05/20 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
房地产销售经理岗位职责
2014/01/01 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书