API del portapapeles

La API del portapapeles permite acceder los comandos del portapapeles (cortar, copiar y pegar), así como leer y escribir de manera asíncrona el portapapeles del sistema. Acceder al contenido del portapapeles está sujeta a la API de permisos: El permiso clipboard-write es concedido automáticamente a las páginas cuando están en la pestaña activa. El permiso clipboard-read debe ser solicitado, lo que se puede hacer intentando leer directamente el portapapeles.

Esta API está diseñada para reemplazar el acceso al portapapeles usando document.execCommand().

Accediendo al portapapeles

En vez de instanciar un objeto Clipboard, se puede acceder al portapapeles del sistema a través de la variable global Navigator.clipboard:

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

Esta pieza de código lee el texto que hay en el portapapeles y lo añade al primer elemento que tenga la clase editor. Desde que readText() (y también read(), de hecho) devuelve una cadena de texto vacía si el contenido del portapapeles no es texto, este código es seguro.

Interfaces

Clipboard Secure context
Proporciona una interfaz para leer y escribir texto y datos. La especificación se refiere a esto como 'Async Clipboard API.'
ClipboardEvent Secure context
Representa la información del evento que se ha disparado. Los eventos que se pueden disparar son: cortar, copiar, y pegar. La especificación se refiere a esto como 'Clipboard Event API'.
ClipboardItem Secure context
Representa uno de los objetos del portapapeles, usado en la lectura y escritura de datos.

Especificaciones

Especificación Estado Observaciones
Clipboard API and events Working Draft Definición primitiva.

Compatibilidad con navegadores

Clipboard

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
ClipboardChrome Soporte completo 66Edge Soporte completo 79Firefox Soporte completo 63IE Sin soporte NoOpera Soporte completo 53Safari Soporte completo 13.1WebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android Soporte completo 63Opera Android Soporte completo 47Safari iOS Soporte completo 13.4Samsung Internet Android Soporte completo 9.0
readChrome Soporte parcial 76
Notas
Soporte parcial 76
Notas
Notas From version 76, the image/png MIME type is supported.
Soporte parcial 66
Notas
Notas Images are not supported.
Edge Soporte completo 79Firefox Soporte completo 63
Notas Deshabilitado
Soporte completo 63
Notas Deshabilitado
Notas Currently works just like readText(); non-text content is not currently supported.
Deshabilitado 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 Sin soporte NoOpera Soporte completo 63Safari Soporte completo 13.1WebView Android Soporte parcial 84
Notas
Soporte parcial 84
Notas
Notas From version 84, the image/png MIME type is supported.
Soporte parcial 66
Notas
Notas Images are not supported.
Chrome Android Soporte parcial 84
Notas
Soporte parcial 84
Notas
Notas From version 84, the image/png MIME type is supported.
Soporte parcial 66
Notas
Notas Images are not supported.
Firefox Android Soporte completo 63
Notas Deshabilitado
Soporte completo 63
Notas Deshabilitado
Notas Currently works just like readText(); non-text content is not currently supported.
Deshabilitado 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 Soporte completo 54Safari iOS Soporte completo 13.4Samsung Internet Android Soporte completo 12.0
readTextChrome Soporte completo 66Edge Soporte completo 79Firefox Soporte completo 63
Notas
Soporte completo 63
Notas
Notas Firefox only supports reading the clipboard in browser extensions, using the "clipboardRead" extension permission.
IE Sin soporte NoOpera Soporte completo 53Safari Soporte completo 13.1WebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android Soporte completo 63
Notas
Soporte completo 63
Notas
Notas Firefox only supports reading the clipboard in browser extensions, using the "clipboardRead" extension permission.
Opera Android Soporte completo 47Safari iOS Soporte completo 13.4Samsung Internet Android Soporte completo 9.0
writeChrome Soporte completo 66
Notas
Soporte completo 66
Notas
Notas From version 76, the image/png MIME type is supported.
Edge Soporte completo 79Firefox Soporte completo 63
Notas Deshabilitado
Soporte completo 63
Notas Deshabilitado
Notas Currently works exactly like writeText(), including the availability limitations currently imposed by Firefox.
Deshabilitado 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 Sin soporte NoOpera Soporte completo 63Safari Soporte completo 13.1WebView Android Soporte completo 66
Notas
Soporte completo 66
Notas
Notas From version 84, the image/png MIME type is supported.
Chrome Android Soporte completo 66
Notas
Soporte completo 66
Notas
Notas From version 84, the image/png MIME type is supported.
Firefox Android Soporte completo 63
Notas Deshabilitado
Soporte completo 63
Notas Deshabilitado
Notas Currently works exactly like writeText(), including the availability limitations currently imposed by Firefox.
Deshabilitado 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 Soporte completo 54Safari iOS Soporte completo 13.4Samsung Internet Android Soporte completo 12.0
writeTextChrome Soporte completo 66Edge Soporte completo 79Firefox Soporte completo 63
Notas
Soporte completo 63
Notas
Notas 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 Sin soporte NoOpera Soporte completo 53Safari Soporte completo 13.1WebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android Soporte completo 63
Notas
Soporte completo 63
Notas
Notas 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 Soporte completo 47Safari iOS Soporte completo 13.4Samsung Internet Android Soporte completo 9.0

Leyenda

Soporte completo  
Soporte completo
Soporte parcial  
Soporte parcial
Sin soporte  
Sin soporte
Ver notas de implementación.
Ver notas de implementación.
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.

ClipboardEvent

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
ClipboardEvent
Experimental
Chrome Soporte completo SiEdge Soporte completo 12Firefox Soporte completo 22IE Soporte completo 4Opera Soporte completo SiSafari Soporte completo SiWebView Android Soporte completo SiChrome Android Soporte completo SiFirefox Android Soporte completo 22Opera Android Soporte completo SiSafari iOS Soporte completo SiSamsung Internet Android Soporte completo Si
ClipboardEvent() constructor
Experimental
Chrome Soporte completo 58Edge Soporte completo ≤79Firefox Soporte completo 22IE Sin soporte NoOpera Soporte completo 45Safari ? WebView Android Soporte completo 58Chrome Android Soporte completo 58Firefox Android Soporte completo 22Opera Android Soporte completo 43Safari iOS ? Samsung Internet Android Soporte completo 7.0
clipboardData
Experimental
Chrome Soporte completo SiEdge Soporte completo 12Firefox Soporte completo 22IE Soporte completo 5Opera Soporte completo SiSafari Soporte completo SiWebView Android Soporte completo SiChrome Android Soporte completo SiFirefox Android Soporte completo 22Opera Android Soporte completo SiSafari iOS Soporte completo SiSamsung Internet Android Soporte completo Si

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibilidad desconocida  
Compatibilidad desconocida
Experimental. Esperar que el comportamiento cambie en el futuro.
Experimental. Esperar que el comportamiento cambie en el futuro.

ClipboardItem

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
ClipboardItem
Experimental
Chrome Soporte completo 66Edge Soporte completo ≤79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android Sin soporte NoOpera Android Soporte completo SiSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 9.0
ClipboardItem() constructor
Experimental
Chrome Soporte completo 66Edge Soporte completo ≤79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android Sin soporte NoOpera Android Soporte completo SiSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 9.0
getType
Experimental
Chrome Soporte completo 66Edge Soporte completo ≤79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android Sin soporte NoOpera Android Soporte completo SiSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 9.0
types
Experimental
Chrome Soporte completo 66Edge Soporte completo ≤79Firefox Sin soporte NoIE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android Sin soporte NoOpera Android Soporte completo SiSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 9.0

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Experimental. Esperar que el comportamiento cambie en el futuro.
Experimental. Esperar que el comportamiento cambie en el futuro.

Véase también