【问题标题】:How to obtain data from clipboard in Firefox如何在 Firefox 中从剪贴板获取数据
【发布时间】:2013-03-07 18:44:25
【问题描述】:

我想在元素上触发 onpaste 事件以检索剪贴板中的数据(我想检查剪贴板中是否存在图像并将其上传到服务器)。它在 Chrome 上完美运行:

$('#textarea')[0].onpaste = function(event)
{
    var items = event.clipboardData.items;

    if (items.length)
    {
        var blob = items[0].getAsFile();
        var fr = new FileReader();

        fr.onload = function(e)
        {
            alert('got it!');
        }

        fr.readAsDataURL(blob);
    }
}

不适用于 Firefox:event.clipboardData.items 不存在。您知道如何在元素中检索 onpaste 事件吗?

【问题讨论】:

标签: javascript jquery firefox clipboard


【解决方案1】:

您需要创建一个内容可编辑的 div 来保存粘贴时的图像

var pasteCatcher = $('<div/>',{'id':'container'});
$('body').append(pasteCatcher);
var pasteCatcher = document.getElementById('container');
               pasteCatcher.setAttribute("contenteditable", "");

那么你需要等待粘贴事件并处理它

 window.addEventListener("paste",processEvent);
function processEvent(e) {
//some functionality
}

同时编写代码从 contenteditable div 中抓取图像数据并将其发送到服务器。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 至少第一个链接并不真正相关;这就是对剪贴板的完全、无条件访问。
    【解决方案3】:

    当然可以。在此示例中,我使用 Ctrl+V 后从剪贴板检索图像:

     <div id="foo" style="width: 200px; height: 200px" contenteditable="true">Paste here!</div>
     $('#foo')[0].onpaste = function(e)
    {                   
        setTimeout(function()
        {
            var blob = $('#foo img').attr('src');
    
    
            $.post('/upload/image', {'data': blob}, function(result)
            {
    
    
            }, 'json'); 
    
        }, 200);
    }
    

    它适用于具有contenteditable 属性的&lt;div&gt; 元素,但不适用于&lt;textarea&gt;

    附:很抱歉回答我自己的问题,但这段代码可能会对某人有所帮助。

    【讨论】:

    • 嘿,我需要你的帮助。您的解决方案是正确的,但我怀疑 contenteditable div 是否已经包含 2 张图片,并且当我 Crtl+V 时,它会在服务器上上传总共 3 张图片?
    • 嗯...上面的代码上传了src属性中的所有内容。
    • 我知道它上传 src 属性值,但我想知道 div 中是否已经有 3 个 src 可用,然后它总共上传 4 个 src(其中 3 个已经存在,第 4 个是新粘贴的) ??
    猜你喜欢
    • 2013-08-15
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2011-02-02
    相关资源
    最近更新 更多