Javascript只需从Chrome上的剪贴板中获取复制文本即可

cle*_*ine 4 clipboard google-chrome

你能告诉我怎样才能获得复制到剪贴板中的文本.我不想复制,因为数据是从Excel复制的.在IE中我使用:

  var clipText = window.clipboardData.getData('Text');
Run Code Online (Sandbox Code Playgroud)

而且它的工作非常完美.铬有可能吗?或者火狐?

谢谢你提前

Gid*_*zer 8

所述window.clipboardData目的是仅在IE可用.对于我来说,网站能够访问您的剪贴板数据似乎是一个很大的安全漏洞,尤其是在您不知情的情况下.根据规范,从Microsoft Edge开始,它大部分都被弃用了.

相反,您可以通过收听paste事件来访问数据:

document.addEventListener('paste', function (event) {
  var clipText = event.clipboardData.getData('Text');
});
Run Code Online (Sandbox Code Playgroud)

  • 好的,所以用户被迫在Navigator上创建ctrl + V,因为我可以获取数据? (2认同)

小智 5

如果您希望使用 jQuery 并将元素绑定到“粘贴”事件,那么您可以使用originalEvent调用事件上的属性来访问剪贴板数据。

检查窗口对象以查看是否clipboardData未定义。这意味着您没有使用 IE 或 Edge。

this.bind('paste', function(e){
if (window.clipboardData === undefined)
    clipText = e.originalEvent.clipboardData.getData('Text') // use this method in Chrome to get clipboard data.
else
    clipText = window.clipboardData.getData('Text') // use this method in IE/Edge to get clipboard data.
});
Run Code Online (Sandbox Code Playgroud)