• xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!


    js & Input & Paste & Clipboard & upload & Image

    input paste upload image js

    Clipboard_API

    https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API

    
    
    let textarea = document.querySelector(`[data-box="box-textarea"]`);
    let box = document.querySelector(`[data-input="text"]`);
    
    box.addEventListener("paste", function(event) {
        let items = (event.clipboardData || event.originalEvent.clipboardData).items;
        console.log(`clipboardData items: `, JSON.stringify(items, null, 4));
        // will give you the mime types
        for (const item of items) {
            // let item = items[i];
            if (item.kind === "file") {
                // let blob = item.getAsFile();
                // let url = window.URL.createObjectURL(blob);
                let blob = item.getAsFile();
                let reader = new FileReader();
                reader.onload = function(event) {
                    console.log(`event.target.result =`, event.target.result);
                    // data:image/png;base64,
                    let img = document.createElement(`img`);
                    img.src = event.target.result;
                    img.setAttribute(`class`, `clearfix`);
                    // img.class = ".clearfix";
                    // img.class = "clearfix";
                    img.style = " 30%; height: 30%;";
                    // img.style = " 200px; height: 100px;";
                    // textarea.appendChild(img);
                    // textarea.insertAdjacentElement(`beforeend`, img);
                    textarea.insertAdjacentElement(`afterend`, img);
                };
                // data url
                reader.readAsDataURL(blob);
            }
        }
    });
    
    

    type bug

    
    // 单聊贴图发送
    let textarea = document.querySelector(`[data-box="box-textarea"]`);
    let box = document.querySelector(`[data-input="text"]`);
    box.addEventListener("paste", function (e) {
    // document.addEventListener("paste", function (e) {
        log(`e =`, e);
        log(`e.clipboardData`, e.clipboardData);
        log(`e.clipboardData.types`, e.clipboardData.types);
        log(`e.clipboardData.items`, e.clipboardData.items);
        log(`e.clipboardData.items.length`, e.clipboardData.items.length);
        log(`e.clipboardData.items[0]`, e.clipboardData.items[0]);
        log(`e.clipboardData.items[1]`, e.clipboardData.items[1]);
        if (e.clipboardData && e.clipboardData.types) {
            if (e.clipboardData.items.length > 0) {
                if (/^image/w+$/.test(e.clipboardData.items[0].type)) {
                    let blob = e.clipboardData.items[0].getAsFile();
                    let url = window.URL.createObjectURL(blob);
                    // preview
                    let img = document.createElement(`img`);
                    // img.src = event.target.result;
                    img.src = url;
                    img.setAttribute(`class`, `clearfix`);
                    img.style = " 200px; height: 100px;";
                    textarea.insertAdjacentElement(`afterend`, img);
                    // preview
                    let uid = conn.getUniqueId();
                    // 生成本地消息id
                    let msg = new WebIM.message("img", uid);
                    // 创建图片 img 消息
                    msg.set({
                        apiUrl: WebIM.config.apiURL,
                        file: {
                            data: blob,
                            url: url,
                        },
                        to: "test",
                        // to: "root",
                        // 接收消息对象
                        roomType: false,
                        // 单聊
                        onFileUploadError(err) {
                            log("Image Upload Error", err);
                        },
                        onFileUploadComplete(data) {
                            log("Image Upload Complete", data);
                        },
                        success(id) {
                            log("Image Upload Success", id);
                        },
                    });
                    conn.send(msg.body);
                }
            }
        }
    });
    
    
    

    OK

    
    // 单聊贴图发送
    let textarea = document.querySelector(`[data-box="box-textarea"]`);
    let box = document.querySelector(`[data-input="text"]`);
    box.addEventListener("paste", function (e) {
    // document.addEventListener("paste", function (e) {
        log(`e =`, e);
        log(`e.clipboardData`, e.clipboardData);
        log(`e.clipboardData.types`, e.clipboardData.types);
        log(`e.clipboardData.items`, e.clipboardData.items);
        log(`e.clipboardData.items.length`, e.clipboardData.items.length);
        log(`e.clipboardData.items[0]`, e.clipboardData.items[0]);
        log(`e.clipboardData.items[1]`, e.clipboardData.items[1]);
        if (e.clipboardData && e.clipboardData.types) {
            if (e.clipboardData.items.length > 0) {
                // if (/^image/w+$/.test(e.clipboardData.items[0].type)) {
                //     let blob = e.clipboardData.items[0].getAsFile();
                if (/^image/w+$/.test(e.clipboardData.items[1].type)) {
                    let blob = e.clipboardData.items[1].getAsFile();
                    let url = window.URL.createObjectURL(blob);
                    // preview
                    let img = document.createElement(`img`);
                    // img.src = event.target.result;
                    img.src = url;
                    img.setAttribute(`class`, `clearfix`);
                    img.style = " 200px; height: 100px;";
                    textarea.insertAdjacentElement(`afterend`, img);
                    // preview
                    let uid = conn.getUniqueId();
                    // 生成本地消息id
                    let msg = new WebIM.message("img", uid);
                    // 创建图片 img 消息
                    msg.set({
                        apiUrl: WebIM.config.apiURL,
                        file: {
                            data: blob,
                            url: url,
                        },
                        to: "test",
                        // to: "root",
                        // 接收消息对象
                        roomType: false,
                        // 单聊
                        onFileUploadError(err) {
                            log("Image Upload Error", err);
                        },
                        onFileUploadComplete(data) {
                            log("Image Upload Complete", data);
                        },
                        success(id) {
                            log("Image Upload Success", id);
                        },
                    });
                    conn.send(msg.body);
                }
            }
        }
    });
    
    
    

    ClipboardEvent

    https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent

    clipboardData

    https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData

    https://caniuse.com/#search=clipboardData

    https://caniuse.com/#search=execCommand

    https://codepen.io/netsi1964/pen/IoJbg

    https://stackoverflow.com/questions/6333814/how-does-the-paste-image-from-clipboard-functionality-work-in-gmail-and-google-c

    
    
    
    

    https://stackoverflow.com/questions/50427513/html-paste-clipboard-image-to-file-input

    
    
    
    

    https://mobiarch.wordpress.com/2013/09/25/upload-image-by-copy-and-paste/

    
    
    
    

    https://stackoverflow.com/questions/490908/paste-an-image-from-clipboard-using-javascript/4400761

    
    
    
    

    refs



    ©xgqfrms 2012-2020

    www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


  • 相关阅读:
    MFC CListCtrl 使用介绍
    头文件预编译 .
    WM_CREATE和WM_INITDIALOG
    一步一步学List Control控件的用法(第三步)设置风格 .
    VC定时器的用法:SetTimer和Ontimer .
    GetWindowRect与GetClientRect 的区别 .
    Prebuild Command line(Copy) . vc2008预生成事件和生成后事件的用法
    MFC浅析(7) CWnd类虚函数的调用时机、缺省实现 .
    MFC中VALUE和CONTROL的区别(EDIT控件)
    MFC应用程序中处理消息的顺序
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/11009745.html
Copyright © 2020-2023  润新知