JavaScript從剪切板中獲取圖片並在光標處插入

edit_content_text.addEventListener('paste', function (ev) {
    var clipboardData, items, item;
    console.log(ev.clipboardData.items[0].type)
    if (ev && (clipboardData = ev.clipboardData) && (items = clipboardData.items) && (item = items[0]) && item.kind == 'file' && item.type.includes("image")) {
       
        //blob就是剪贴板中的二进制图片数据
        var blob = item.getAsFile();
        //定义fileReader读取完数据后的回调
        var reader = new FileReader();
        reader.onload = function () {
            //result应该是base64编码后的图片
            var sHtml = '<img src="' + event.target.result + '">';
            if (focus === true) {
                var selection = getSelection()
                var range = selection.getRangeAt(0);
                var img = document.createElement('img');
                img.src = event.target.result;
                range.insertNode(img);
                // edit_content_text.innerHTML = edit_content_text.innerHTML + sHtml;
            }
            //_this.pasteHTML(sHtml);//这里应该是关于光标和插入代码的具体操作
        }
        //用fileReader读取二进制图片,完成后会调用上面定义的回调函数
        reader.readAsDataURL(blob);
        //return false;
    }
});

posted @ 2017-07-24 14:02  FreePress  阅读(215)  评论(0编辑  收藏  举报