Clipboard API

The Clipboard API provides the ability to respond to clipboard commands (cut, copy, and paste) as well as to asynchronously read from and write to the system clipboard. Access to the contents of the clipboard is gated behind the Permissions API: The clipboard-write permission is granted automatically to pages when they are in the active tab. The clipboard-read permission must be requested, which you can do by trying to read data from the clipboard.

This API is designed to supersede accessing the clipboard using document.execCommand().

Accessing the clipboard

Instead of creating a Clipboard object through instantiation, you access the system clipboard through the Navigator.clipboard global:

navigator.clipboard.readText().then(
  clipText => document.querySelector(".editor").innerText += clipText);

This snippet fetches the text from the clipboard and appends it to the first element found with the class editor. Since readText() (and read(), for that matter) returns an empty string if the clipboard isn't text, this code is safe.

Interfaces

Clipboard Secure context
Provides an interface for reading and writing text and data to or from the system clipboard. The specification refers to this as the 'Async Clipboard API.'
ClipboardEvent Secure context
Represents events providing information related to modification of the clipboard, that is cut, copy, and paste events. The specification refers to this as the 'Clipboard Event API'.
ClipboardItem Secure context
Represents a single item format, used when reading or writing data.

Specifications

Specification Status Comment
Clipboard API and events Working Draft Initial definition.

Browser compatibility

Clipboard

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
ClipboardChrome Full support 66Edge Full support 79Firefox Full support 63IE No support NoOpera Full support 53Safari Full support 13.1WebView Android Full support 66Chrome Android Full support 66Firefox Android Full support 63Opera Android Full support 47Safari iOS Full support 13.4Samsung Internet Android Full support 9.0
readChrome Partial support 76
Notes
Partial support 76
Notes
Notes From version 76, the image/png MIME type is supported.
Partial support 66
Notes
Notes Images are not supported.
Edge Full support 79Firefox Full support 63
Notes Disabled
Full support 63
Notes Disabled
Notes Currently works just like readText(); non-text content is not currently supported.
Disabled From version 63: this feature is behind the dom.events.asyncClipboard.dataTransfer preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 63Safari Full support 13.1WebView Android Partial support 84
Notes
Partial support 84
Notes
Notes From version 84, the image/png MIME type is supported.
Partial support 66
Notes
Notes Images are not supported.
Chrome Android Partial support 84
Notes
Partial support 84
Notes
Notes From version 84, the image/png MIME type is supported.
Partial support 66
Notes
Notes Images are not supported.
Firefox Android Full support 63
Notes Disabled
Full support 63
Notes Disabled
Notes Currently works just like readText(); non-text content is not currently supported.
Disabled From version 63: this feature is behind the dom.events.asyncClipboard.dataTransfer preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support 54Safari iOS Full support 13.4Samsung Internet Android Full support 12.0
readTextChrome Full support 66Edge Full support 79Firefox Full support 63
Notes
Full support 63
Notes
Notes Firefox only supports reading the clipboard in browser extensions, using the "clipboardRead" extension permission.
IE No support NoOpera Full support 53Safari Full support 13.1WebView Android Full support 66Chrome Android Full support 66Firefox Android Full support 63
Notes
Full support 63
Notes
Notes Firefox only supports reading the clipboard in browser extensions, using the "clipboardRead" extension permission.
Opera Android Full support 47Safari iOS Full support 13.4Samsung Internet Android Full support 9.0
writeChrome Full support 66
Notes
Full support 66
Notes
Notes From version 76, the image/png MIME type is supported.
Edge Full support 79Firefox Full support 63
Notes Disabled
Full support 63
Notes Disabled
Notes Currently works exactly like writeText(), including the availability limitations currently imposed by Firefox.
Disabled From version 63: this feature is behind the dom.events.asyncClipboard.dataTransfer preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 63Safari Full support 13.1WebView Android Full support 66
Notes
Full support 66
Notes
Notes From version 84, the image/png MIME type is supported.
Chrome Android Full support 66
Notes
Full support 66
Notes
Notes From version 84, the image/png MIME type is supported.
Firefox Android Full support 63
Notes Disabled
Full support 63
Notes Disabled
Notes Currently works exactly like writeText(), including the availability limitations currently imposed by Firefox.
Disabled From version 63: this feature is behind the dom.events.asyncClipboard.dataTransfer preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support 54Safari iOS Full support 13.4Samsung Internet Android Full support 12.0
writeTextChrome Full support 66Edge Full support 79Firefox Full support 63
Notes
Full support 63
Notes
Notes Writing to the clipboard is available without permission in secure contexts and browser extensions, but only from user-initiated event callbacks. Browser extensions with the "clipboardWrite" permission can write to the clipboard at any time.
IE No support NoOpera Full support 53Safari Full support 13.1WebView Android Full support 66Chrome Android Full support 66Firefox Android Full support 63
Notes
Full support 63
Notes
Notes Writing to the clipboard is available without permission in secure contexts and browser extensions, but only from user-initiated event callbacks. Browser extensions with the "clipboardWrite" permission can write to the clipboard at any time.
Opera Android Full support 47Safari iOS Full support 13.4Samsung Internet Android Full support 9.0

Legend

Full support
Full support
Partial support
Partial support
No support
No support
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.

ClipboardEvent

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
ClipboardEvent
Experimental
Chrome Full support YesEdge Full support 12Firefox Full support 22IE Full support 4Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
ClipboardEvent() constructor
Experimental
Chrome Full support 58Edge Full support ≤79Firefox Full support 22IE ? Opera Full support 45Safari ? WebView Android Full support 58Chrome Android Full support 58Firefox Android Full support 22Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 7.0
clipboardData
Experimental
Chrome Full support YesEdge Full support 12Firefox Full support 22IE Full support 5Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support
Full support
Compatibility unknown
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.

ClipboardItem

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
ClipboardItem
Experimental
Chrome Full support 66Edge Full support ≤79Firefox No support NoIE No support NoOpera Full support YesSafari No support NoWebView Android Full support 66Chrome Android Full support 66Firefox Android No support NoOpera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support Yes
ClipboardItem() constructor
Experimental
Chrome Full support 66Edge Full support ≤79Firefox No support NoIE No support NoOpera Full support YesSafari No support NoWebView Android Full support 66Chrome Android Full support 66Firefox Android No support NoOpera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support Yes
getType
Experimental
Chrome Full support 66Edge Full support ≤79Firefox No support NoIE No support NoOpera Full support YesSafari No support NoWebView Android Full support 66Chrome Android Full support 66Firefox Android No support NoOpera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support Yes
types
Experimental
Chrome Full support 66Edge Full support ≤79Firefox No support NoIE No support NoOpera Full support YesSafari No support NoWebView Android Full support 66Chrome Android Full support 66Firefox Android No support NoOpera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support Yes

Legend

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.

See also