获取剪贴板数据

9 javascript clipboard jquery http-get

我正在尝试编写一个Javascript函数来在剪贴之前编辑剪贴板中的内容.现在我通过JQuery绑定事件'paste'来运行.

$(this.elementDoc).bind('paste', function(event){
   self.OnPaste(event);
});
Run Code Online (Sandbox Code Playgroud)

但那并不重要.现在我想从剪贴板获取数据,但我无法了解如何.每一个暗示我都会很高兴.

Cal*_*vin 5

这是一个硬汉。如果我没记错的话,IE 允许访问剪贴板,但默认情况下 Firefox 由于安全问题不允许访问。我必须为我正在处理的项目执行此操作,并且被迫使用一个小的 SWF 文件进行复制。

http://www.jeffothy.com/weblog/clipboard-copy/

  • 据我所知,该解决方案允许复制到剪贴板,但不能从剪贴板获取。因此,这根本不是所提出问题的解决方案 - 我不知道为什么它被如此标记(除非OP感到困惑)。如果我错了,请解释! (2认同)

B T*_*B T 5

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

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

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
})
Run Code Online (Sandbox Code Playgroud)

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