实现截图粘贴在编辑框内

1.首先定义一个<div> 并且设置contenteditable(可编辑段落)属性为true.

2.为该div添加一个粘贴的监听事件:

document.getElementById('richedit').addEventListener('paste',function(e) {});

3.编写触发后的函数:

a.获取剪切板clipboardData对象,ie7,与ie8 对网页有个复制的权限,需在“安全”中的“自定义级别”的脚本中设置 clipboardData 对象。                                                    

    var cbd = e.clipboardData;

b.判断是否有内容

    if (cbd) {                                                                                                                                                                              var items = cbd.items;                                                                                                                                           if (!items) { return; }                                                                                                                                                  var item = items[0];                                                                                                                                                  var types = cbd.types || [];// 保存在剪贴板中的数据类型                                                                                          for (var i = 0; i < types.length; i++) {                                                                                                                                  if (types[i] === 'Files') { item = items[i]; break; }                                                                                                  }                                                                                                                                                                            // 判断是否为图片数据                                                                                                                                              if (item && item.kind === 'file' && item.type.match(/^image\//i)) {                                                                                      var blob = item.getAsFile();                                                                                                                                      reader = new FileReader(); // 读取文件后将其显示在网页中                                                                                    reader.onload = function(e) {                                                                                                                                             var img = new Image(); //创建图像对象                                                                                                                   img.src = e.target.result;                                                                                                                                           document.getElementById('richedit').appendChild(img);                                                                                         var img = document.querySelectorAll('#richedit img');                                                                                             for (var k = 0; k < img.length-1; k++) {                                                                                                                            for (var j = k + 1; j < img.length; j++) //解决chrome高版本粘贴两次的问题                                                                        if (img[k].src == img[j].src) {                                                                                                                                               document.querySelector('#richedit').removeChild(img[j]);                                                                                        break;                                                                                                                                                             }                                                                                                                                                                      }                                                                                                                                                                         };                                                                                                                                                                       // 读取文件                                                                                                                                                               reader.readAsDataURL(blob);                                                                                                                        }                                                                                                                                                                  }                                                                                                                                                                             


下面附有整个代码:
<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>网页上实现截图粘贴</title>

<style type="text/css">

#richedit {

width:800px;

height:600px;

border:1px solid red;

overflow:auto;

}

</style>

</head>

<body>

<div id="richedit" contenteditable="true"></div>

</body>

</html>

<script type="text/javascript">

//为可编辑的div添加监听事件。

    document.getElementById('richedit').addEventListener('paste',function(e) {

var cbd = e.clipboardData;//获取剪切板clipboardData对象,ie7,与ie8 对网页有个复制的权限,需在“安全”中的“自定义级别”的脚本中设置 clipboardData 对象

        if (cbd) {

var items =cbd.items;

if (!items) {

return;

}

var item =items[0];

var types =cbd.types || [];// 保存在剪贴板中的数据类型

            for (var i =0;i

if (types[i] ==='Files') {

item =items[i];

break;

}

}

// 判断是否为图片数据

            if (item &&item.kind ==='file' &&item.type.match(/^image\//i)) {

var blob =item.getAsFile();

reader =new FileReader();// 读取文件后将其显示在网页中

                reader.onload =function(e) {

var img =new Image();//创建图像对象

                    img.src = e.target.result;

document.getElementById('richedit').appendChild(img);

var img =document.querySelectorAll('#richedit img');

for (var k =0;k

for (var j =k +1;j

//解决chrome高版本粘贴两次的问题

                            if (img[k].src ==img[j].src) {

document.querySelector('#richedit').removeChild(img[j]);

break;

}

}

};// 读取文件

                reader.readAsDataURL(blob);

}

}

});

</script>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容