• [转][Chrome]浏览器粘贴行为


    <html>
    <head>
        <meta charset="UTF-8">
        <title>test chrome paste image</title>
        <!-- https://www.zhihu.com/question/20893119/answer/19452676 -->
    <style>
        DIV#editable {
            width: 400px;
            height: 300px;
            border: 1px dashed blue;
        }
    </style>
    <script type="text/javascript">
        window.onload=function() {
        function paste_img(e) {
            if ( e.clipboardData.items ) {
                // google-chrome 
                //alert('support clipboardData.items(chrome ...)');
                var ele = e.clipboardData.items
                for (var i = 0; i < ele.length; ++i) {
                    if(ele[i].kind == 'string' && ele[i].type == 'text/plain') {
                        ele[i].getAsString(function(text){
                            console.log(text)
                        })
                    }
                    else if ( ele[i].kind == 'file' && ele[i].type.indexOf('image/') !== -1 ) {
                        var blob = ele[i].getAsFile();
                        window.URL = window.URL || window.webkitURL;
                        var blobUrl = window.URL.createObjectURL(blob);
                        console.log(blobUrl);
    
                        var new_img= document.createElement('img');
                        new_img.setAttribute('src', blobUrl);
                        var new_img_intro = document.createElement('p');
                        new_img_intro.innerHTML = 'the pasted img url(open it in new tab): <br /><a target="_blank" href="' + blobUrl + '">' + blobUrl + '</a>';
    
                        document.getElementById('editable').appendChild(new_img);
                        document.getElementById('editable').appendChild(new_img_intro);
                    }
                }
            } else {
                alert('non-chrome');
            }
        }
        document.getElementById('editable').onpaste=function(){paste_img(event);return false;};
    }
    
    </script>
    </head>
    <body >
        <h2>test image paste in browser</h2>
        <div id="non-editable" >
            <p>copy the following img, then paste it into the area below</p>
            <!--<img src="./128.png" />-->
        </div>
        <div id="editable" contenteditable="true" >
            <p>this is an editable div area</p>
            <p>paste the image into here.</p>
        </div>
    </body>
    </html>

    本文来自:https://www.zhihu.com/question/20893119/answer/19452676

    经测试,仅支持 Chrome 浏览器,可支持 文字、图片、Excel 粘贴。

  • 相关阅读:
    SpringMVC+Shiro权限管理(转载)
    面试常见问题(转载)
    JavaScript 五种(非构造方式)继承
    JavaScript 五种(构造方式)继承
    Quartz.Net 基于XML配置启动
    jexus防止产生 *.core文件
    Last-Modified、ETag、Expires和Cache-Control
    正则表达式记录
    C# 操作mongodb子文档
    ASP.NET Core "完整发布,自带运行时" 到jexus
  • 原文地址:https://www.cnblogs.com/z5337/p/8275638.html
Copyright © 2020-2023  润新知