html 截图粘粘图片JS

Posted laushow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html 截图粘粘图片JS相关的知识,希望对你有一定的参考价值。

web前端socket聊天室功能和在线编辑器上传编辑内容的时候经常会需要上传一些图文信息,但是很多编辑器不支持截图粘粘的功能,这里参考了网友分享的可用方法做一个记录。

 1 <html>
 2 <head>
 3     <title>截图粘粘</title>
 4     <style type=‘text/css‘>
 5         #editable {
 6             width: 600px;
 7             height: 400px;
 8             border: 1px dashed red;
 9         }
10     </style>
11     <script type="text/javascript">
12         window.onload = function () {
13             function paste_img(e) {
14                 if (e.clipboardData.items) {
15                     var ele = e.clipboardData.items
16                     for (var i = 0; i < ele.length; ++i) {
17                         if (ele[i].kind == file && ele[i].type.indexOf(image/) !== -1) {
18                             var blob = ele[i].getAsFile();
19                             window.URL = window.URL || window.webkitURL;
20                             var blobUrl = window.URL.createObjectURL(blob);
21                             var new_img = document.createElement(img);
22                             convertImgToBase64(blobUrl, function(base64Img){
23                                 new_img.setAttribute(src, base64Img);
24                                 document.getElementById(editable).appendChild(new_img);
25                             });
26                         }
27                     }
28                 } else {
29                     alert(您的浏览器不支持粘贴图片功能,请换更高版本浏览器.);
30                 }
31             }
32             document.getElementById(editable).onpaste = function () {
33                 paste_img(event);
34                 return false;
35             };
36         }
37         function convertImgToBase64(url, callback, outputFormat){
38             var canvas = document.createElement(CANVAS),
39                 ctx = canvas.getContext(2d),
40                 img = new Image;
41             img.crossOrigin = Anonymous;
42             img.onload = function(){
43                 canvas.height = img.height;
44                 canvas.width = img.width;
45                 ctx.drawImage(img,0,0);
46                 var dataURL = canvas.toDataURL(outputFormat || image/png);
47                 callback.call(this, dataURL);
48                 canvas = null;
49             };
50             img.src = url;
51         }
52 
53     //方法2 图片转base64 body监听粘贴
54     $(body).on(paste, function(e){
55         alert(1212);
56         var clipboard = e.clipboardData;
57         var type = clipboard.items[0].type;
58         alert(-=-=-);
59         if (type.match(/image/)) {
60             var blob = clipboard.items[0].getAsFile();
61             var file = new FileReader();
62             file.on(loadend, function(e){
63                 alert(e.target.result);
64                 console.log(image,e.target.result);
65             });
66             file.readAsDataURL(blob);
67         } else {
68             alert(type);
69             console.log(not an image,type);
70         }
71     });
72     </script>
73 </head>
74 <body>
75 <div id="editable" contenteditable="true">
76 </div>
77 </body>
78 </html>

 

以上是关于html 截图粘粘图片JS的主要内容,如果未能解决你的问题,请参考以下文章

Js实现将html页面或div生成图片

js实现html截图生成图片

JS 使用 html2canvas 实现页面截图功能

html与js实现视频截图

介绍两个关于生成截图图片的js库:html2canvas

html2canvas.js网页截图功能