如何从Firefox中的剪贴板获取数据

我想在元素上触发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事件?

你需要创建一个contenteditable div,它将粘贴图像

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

然后你需要等待粘贴事件并处理它

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

还要编写代码以从contenteditable div中获取图像数据并将其发送到服务器。

似乎没有。 抱歉。

http://support.mozilla.org/en-US/kb/Granting%20JavaScript%20access%20to%20the%20clipboard

JavaScript在粘贴事件上获取剪贴板数据(跨浏览器)

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

  
Paste here!
$('#foo')[0].onpaste = function(e) { setTimeout(function() { var blob = $('#foo img').attr('src'); $.post('/upload/image', {'data': blob}, function(result) { }, 'json'); }, 200); }

它适用于具有contenteditable属性的

元素,但不适用于

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