zoukankan      html  css  js  c++  java
  • 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 发布文章使用:只允许注册用户才可以访问!


  • 相关阅读:
    标准Gitlab命令行操作指导
    ssh登录巨慢加速验证
    ssh远程主机执行命令或脚本
    ssh创建与添加密钥开启免密登陆 免确认机器指纹参数
    linux免密传输文件 nc
    Linux 查看实时网卡流量的方法 网速 nload sar iftop dstat
    Mysql 常用命令
    Redis 常用命令整理
    shell sed -i 指定内容追加.
    java 复制指定目录中的所有文件和文件夹到另一个指定文件夹中
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/11009745.html
Copyright © 2011-2022 走看看