当用户通过浏览器UI(例如,使用 CTRL/Cmd + C 键盘快捷方式或从菜单中选择“复制”)启动复制操作并响应允许的document.execCommand('copy')调用时触发copy事件。

基本信息

Specification
Clipboard
Interface
ClipboardEvent
Bubbles
Yes
Cancelable
Yes
Target
Element:获得焦点的元素(如contentEditable内容能编辑或者可以选中的元素),或<body>
Default Action
见下文。

调用setData(format, data)可以修改ClipboardEvent.clipboardData事件的默认行为:

document.addEventListener('copy', function(e){
    e.clipboardData.setData('text/plain', 'Hello, world!');
    e.clipboardData.setData('text/html', '<b>Hello, world!</b>');
    e.preventDefault(); // We want our data, not data from any selection, to be written to the clipboard
});

不能使用clipboardData.getData()在事件处理函数中获取剪切板数据。

事件的默认行为与事件的来源和事件处理函数相关:

  • synthetic copy事件没有默认行为,除非:
  • 如果默认事件没有取消,就复制到选区(如果有选中内容)到剪切板;
  • 如果取消了默认事件,但是调用了setData()方法:就复制clipboardData的内容到到剪切板;
  • 如果取消了默认行为,而且没有调用setData()方法,就没有任何行为。

属性

Property Type Description
target 只读 EventTarget The event target (the topmost target in the DOM tree).
type 只读 DOMString The type of event.
bubbles 只读 Boolean Whether the event normally bubbles or not.
cancelable 只读 Boolean Whether the event is cancellable or not.

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

     
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) (Yes) (Yes) ? ? ?
clipboardData (Yes) (Yes) 22 (22) 未实现 ? ?
     
Feature Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support ? (Yes) (Yes) ? ? ?
clipboardData ? (Yes) 22.0 (22) ? ? ?

相关事件

文档标签和贡献者

此页面的贡献者: zhangchen, fscholz, inottn, maicss
最后编辑者: zhangchen,