Javascript 获取剪贴板数据

Javascript 获取剪贴板数据,javascript,jquery,clipboard,http-get,Javascript,Jquery,Clipboard,Http Get,我正在尝试编写一个Javascript函数,在粘贴之前编辑剪贴板中的内容。现在我通过JQuery将绑定事件“粘贴”到函数中 $(this.elementDoc).bind('paste', function(event){ self.OnPaste(event); }); 但这并不重要。现在我想从剪贴板中获取数据,但我不知道如何获取。我很高兴得到每一个提示。这是一个强者。如果我没记错的话,IE允许访问剪贴板,但默认情况下Firefox不允许,因为存在安全问题。我不得不为一个正在进行的项目

我正在尝试编写一个Javascript函数,在粘贴之前编辑剪贴板中的内容。现在我通过JQuery将绑定事件“粘贴”到函数中

$(this.elementDoc).bind('paste', function(event){
   self.OnPaste(event);
});

但这并不重要。现在我想从剪贴板中获取数据,但我不知道如何获取。我很高兴得到每一个提示。

这是一个强者。如果我没记错的话,IE允许访问剪贴板,但默认情况下Firefox不允许,因为存在安全问题。我不得不为一个正在进行的项目这样做,并被迫使用一个小的SWF文件进行复制


以下是如何从IE或Chrome中获取它。首先,它阻止实际粘贴的发生,然后进行功能检查,然后将变量文本设置为剪贴板文本。这样,您就可以操纵文本,然后将其设置为粘贴到的输入/元素的值,或者您想对其执行的任何操作

//get clipboard text
event.preventDefault();
var text = null;
if (window.clipboardData) 
  text = window.clipboardData.getData("Text");
else if (event.originalEvent && event.originalEvent.clipboardData)
  text = event.originalEvent.clipboardData.getData("Text");

//manipulate the text
text = '..do stuff with it..';
//set the text
$(this).val(text);

clipboardData
可以包含各种潜在格式的数据。程序可能会以多种格式添加剪贴板数据。要查看格式,请查看剪贴簿数据.types

剪贴板数据通常包含纯文本,
types
中列出的第一种类型将是MIME类型“text/plain”。如果您从浏览器tho复制文本,您将在列表中看到两种类型:“text/plain”和“text/html”。根据传递到
getData
中的字符串,可以获取纯文本或html。似乎“text”是“text/plain”的缩写,“url”是“text/uri列表”的缩写


有关如何使用
clipboardData.getData
的更多信息,请参阅

据我所知,此解决方案允许复制到剪贴板,但不允许从剪贴板获取。因此,这根本不是所提出问题的解决方案——我不知道为什么它被标记为这样(除非OP被混淆)。如果我错了,请解释!添加了一堆解释
element.addEventListener('paste', function(event) {
  var cb = event.clipboardData
  if(cb.types.indexOf("text/html") != -1) {        // contains html
    var pastedContent = cb.getData("text/html")
  } else if(cb.types.indexOf("text/html") != -1) { // contains text
    var pastedContent = cb.getData("text/html")
  } else {
    var pastedContent = cb.getData(cb.types[0])    // get whatever it has
  }

  // do something with pastedContent
})