使用键盘快捷键实现图片粘贴

花生 可爱的博主

时间: 2021-06-06 阅读: 79 字数:2833

{}
items.length比较有意思,初步判断是根据mime类型来的,即有几种mime类型,长度就是几(待验证)

粘贴上传图片 事件

 document.addEventListener('paste',async function(event){
            var isChrome = false;
            if ( event.clipboardData || event.originalEvent ) {
                //not for ie11  某些chrome版本使用的是event.originalEvent
                var clipboardData = (event.clipboardData || event.originalEvent.clipboardData);
                if ( clipboardData.items ) {
                    // for chrome
                    var  items = clipboardData.items,
                        len = items.length,
                        blob = null;
                    isChrome = true;
                    //items.length比较有意思,初步判断是根据mime类型来的,即有几种mime类型,长度就是几(待验证)
                    //如果粘贴纯文本,那么len=1,如果粘贴网页图片,len=2, items[0].type = 'text/plain', items[1].type = 'image/*'
                    //如果使用截图工具粘贴图片,len=1, items[0].type = 'image/png'
                    //如果粘贴纯文本+HTML,len=2, items[0].type = 'text/plain', items[1].type = 'text/html'
                    // console.log('len:' + len);
                    // console.log(items[0]);
                    // console.log(items[1]);
                    // console.log( 'items[0] kind:', items[0].kind );
                    // console.log( 'items[0] MIME type:', items[0].type );
                    // console.log( 'items[1] kind:', items[1].kind );
                    // console.log( 'items[1] MIME type:', items[1].type );

                    //阻止默认行为即不让剪贴板内容在div中显示出来
                    event.preventDefault();
                    //在items里找粘贴的image,据上面分析,需要循环
                    for (var i = 0; i < len; i++) {
                        if (items[i].type.indexOf("image") !== -1) {
                            //getAsFile() 此方法只是living standard firefox ie11 并不支持
                            blob = items[i].getAsFile();
                            var formData = new FormData();
                            formData.append("editormd-image-file",blob,blob.name)
                            let config = {
                                headers :{"Content-Type":"multipart/from-data"}
                            }
                            let url = "/api/com/t-user/upload";
                            axios.post(url,formData,config).then(res=>{
                                    // console.log(res.data.url)
                                    $(".imgsrc").css("display", "block");
                                    $('#imgmd').html("![图片描述]("+res.data.url+" \"图片描述\")\n");
                            });
                        }
                    }


                }
            }
        })
本文章网址:https://www.sjxi.cn/detil/2e8878985aac4eedb93dd12984442e38

最新评论

当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复