JS 获取剪贴板复制的图片,每次获取的file对象都是第一次复制到剪贴板的,怎样才可以获取到剪贴板最新的file对象

需要做一个复制粘贴功能,上传后台对象为file格式,现在问题是每次获取到的剪贴板上的文件对象都不是最新的,都是第一次复制的文件

            document.addEventListener('paste', function (event) {
                var items = (event.clipboardData || window.clipboardData).items;
                console.log(items);
                var file = null;
                if (items && items.length) {
                    // 搜索剪切板items
                    for (var i = 0; i < items.length; i++) {
                        console.log(items[i].getAsFile());
                        if (items[i].type.indexOf('image') !== -1) {
                            file = items[i].getAsFile();
                            break;
                        }
                    }
                } else {
                    log.innerHTML = '<span style="color:red;">当前浏览器不支持</span>';
                    return;
                }
                if (!file) {
                    log.innerHTML = '<span style="color:red;">粘贴内容非图片</span>';
                    return;
                }else{
                    log.innerHTML = '<span style="color:red;"></span>';
                }
                
                
                // 此时file就是我们的剪切板中的图片对象
                // 如果需要预览,可以执行下面代码
                var reader = new FileReader()
                reader.onload = function(event) {
                    preview.innerHTML = '<img src="' + event.target.result + '" class="upload-image">';
                    //let blob = dataURLtoFile(event.target.result,'image/jpeg');
                    that.$nextTick(()=> {
                        that.beforeUpload(file); // 上传操作,参数为file对象
                    })
                }
                console.log(file);
                reader.readAsDataURL(file);
            });
阅读 963
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题