Clipboard API

Clipboard API предоставляет возможность реагировать на команды буфера обмена (вырезать, копировать и вставить), а также выполнять асинхронные чтение/запись в системный буфер обмена. Доступ к содержимому буфера обмена осуществляется через Permissions API: clipboard-write (разрешение на запись) в буфер обмена автоматически предоставляется страницам, когда они находятся на активной вкладке. Для clipboard-read (чтение из буфера обмена) должно быть запрошено разрешение пользователя. Можно сделать запрос на разрешение, попытавшись прочитать данные из буфера обмена.

API предназначен для доступа к буферу обмена, используя document.execCommand().

Доступ к буферу обмена

Вместо создания объекта буфера посредством инициализации экземпляра, вы получаете доступ к системному буферу обмена через глобальный Navigator.clipboard:

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

Этот фрагмент извлекает текст из буфера обмена и добавляет его к первому элементу, найденному с помощью editor (редактора) классов. Этот код безопасен, поскольку readText()read(), если на то пошло) возвращает пустую строку, если в буфере обмена нет текста.

Интерфейсы

Clipboard Secure context
Предоставляет интерфейс для чтения/записи текста и данных в системный буфер обмена. В спецификации называется 'Async Clipboard API (API асинхронного буфера обмена)'.
ClipboardEvent Secure context
Представляет события, содержащие информацию, относящуюся к модификации буфера обмена, а именно cut, copy и paste события. В спецификации называется 'Clipboard Event API (API событий буфера обмена)'.
ClipboardItem Secure context
Представляет единый формат элемента, используемый при чтении или записи данных.

Спецификации

Спецификация Статус Комментарий
Clipboard API and events Рабочий черновик Первоначальное определение.

Совместимость с браузером

Clipboard

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
ClipboardChrome Полная поддержка 66Edge Полная поддержка 79Firefox Полная поддержка 63IE Нет поддержки НетOpera Полная поддержка 53Safari Полная поддержка 13.1WebView Android Полная поддержка 66Chrome Android Полная поддержка 66Firefox Android Полная поддержка 63Opera Android Полная поддержка 47Safari iOS Полная поддержка 13.4Samsung Internet Android Полная поддержка 9.0
readChrome Частичная поддержка 76
Замечания
Частичная поддержка 76
Замечания
Замечания From version 76, the image/png MIME type is supported.
Частичная поддержка 66
Замечания
Замечания Images are not supported.
Edge Полная поддержка 79Firefox Полная поддержка 63
Замечания Отключено
Полная поддержка 63
Замечания Отключено
Замечания Currently works just like readText(); non-text content is not currently supported.
Отключено 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 Нет поддержки НетOpera Полная поддержка 63Safari Полная поддержка 13.1WebView Android Частичная поддержка 84
Замечания
Частичная поддержка 84
Замечания
Замечания From version 84, the image/png MIME type is supported.
Частичная поддержка 66
Замечания
Замечания Images are not supported.
Chrome Android Частичная поддержка 84
Замечания
Частичная поддержка 84
Замечания
Замечания From version 84, the image/png MIME type is supported.
Частичная поддержка 66
Замечания
Замечания Images are not supported.
Firefox Android Полная поддержка 63
Замечания Отключено
Полная поддержка 63
Замечания Отключено
Замечания Currently works just like readText(); non-text content is not currently supported.
Отключено 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 Полная поддержка 54Safari iOS Полная поддержка 13.4Samsung Internet Android Полная поддержка 12.0
readTextChrome Полная поддержка 66Edge Полная поддержка 79Firefox Полная поддержка 63
Замечания
Полная поддержка 63
Замечания
Замечания Firefox only supports reading the clipboard in browser extensions, using the "clipboardRead" extension permission.
IE Нет поддержки НетOpera Полная поддержка 53Safari Полная поддержка 13.1WebView Android Полная поддержка 66Chrome Android Полная поддержка 66Firefox Android Полная поддержка 63
Замечания
Полная поддержка 63
Замечания
Замечания Firefox only supports reading the clipboard in browser extensions, using the "clipboardRead" extension permission.
Opera Android Полная поддержка 47Safari iOS Полная поддержка 13.4Samsung Internet Android Полная поддержка 9.0
writeChrome Полная поддержка 66
Замечания
Полная поддержка 66
Замечания
Замечания From version 76, the image/png MIME type is supported.
Edge Полная поддержка 79Firefox Полная поддержка 63
Замечания Отключено
Полная поддержка 63
Замечания Отключено
Замечания Currently works exactly like writeText(), including the availability limitations currently imposed by Firefox.
Отключено 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 Нет поддержки НетOpera Полная поддержка 63Safari Полная поддержка 13.1WebView Android Полная поддержка 66
Замечания
Полная поддержка 66
Замечания
Замечания From version 84, the image/png MIME type is supported.
Chrome Android Полная поддержка 66
Замечания
Полная поддержка 66
Замечания
Замечания From version 84, the image/png MIME type is supported.
Firefox Android Полная поддержка 63
Замечания Отключено
Полная поддержка 63
Замечания Отключено
Замечания Currently works exactly like writeText(), including the availability limitations currently imposed by Firefox.
Отключено 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 Полная поддержка 54Safari iOS Полная поддержка 13.4Samsung Internet Android Полная поддержка 12.0
writeTextChrome Полная поддержка 66Edge Полная поддержка 79Firefox Полная поддержка 63
Замечания
Полная поддержка 63
Замечания
Замечания 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 Нет поддержки НетOpera Полная поддержка 53Safari Полная поддержка 13.1WebView Android Полная поддержка 66Chrome Android Полная поддержка 66Firefox Android Полная поддержка 63
Замечания
Полная поддержка 63
Замечания
Замечания 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 Полная поддержка 47Safari iOS Полная поддержка 13.4Samsung Internet Android Полная поддержка 9.0

Легенда

Полная поддержка  
Полная поддержка
Частичная поддержка  
Частичная поддержка
Нет поддержки  
Нет поддержки
Смотрите замечания реализации.
Смотрите замечания реализации.
Пользователь должен сам включить эту возможность.
Пользователь должен сам включить эту возможность.

ClipboardEvent

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
ClipboardEvent
Экспериментальная
Chrome Полная поддержка ДаEdge Полная поддержка 12Firefox Полная поддержка 22IE Полная поддержка 4Opera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаFirefox Android Полная поддержка 22Opera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android Полная поддержка Да
ClipboardEvent() constructor
Экспериментальная
Chrome Полная поддержка 58Edge Полная поддержка ≤79Firefox Полная поддержка 22IE Нет поддержки НетOpera Полная поддержка 45Safari ? WebView Android Полная поддержка 58Chrome Android Полная поддержка 58Firefox Android Полная поддержка 22Opera Android Полная поддержка 43Safari iOS ? Samsung Internet Android Полная поддержка 7.0
clipboardData
Экспериментальная
Chrome Полная поддержка ДаEdge Полная поддержка 12Firefox Полная поддержка 22IE Полная поддержка 5Opera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаFirefox Android Полная поддержка 22Opera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Совместимость неизвестна  
Совместимость неизвестна
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Экспериментальная. Ожидаемое поведение может измениться в будущем.

ClipboardItem

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
ClipboardItem
Экспериментальная
Chrome Полная поддержка 66Edge Полная поддержка ≤79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка ДаSafari Нет поддержки НетWebView Android Полная поддержка 66Chrome Android Полная поддержка 66Firefox Android Нет поддержки НетOpera Android Полная поддержка ДаSafari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 9.0
ClipboardItem() constructor
Экспериментальная
Chrome Полная поддержка 66Edge Полная поддержка ≤79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка ДаSafari Нет поддержки НетWebView Android Полная поддержка 66Chrome Android Полная поддержка 66Firefox Android Нет поддержки НетOpera Android Полная поддержка ДаSafari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 9.0
getType
Экспериментальная
Chrome Полная поддержка 66Edge Полная поддержка ≤79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка ДаSafari Нет поддержки НетWebView Android Полная поддержка 66Chrome Android Полная поддержка 66Firefox Android Нет поддержки НетOpera Android Полная поддержка ДаSafari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 9.0
types
Экспериментальная
Chrome Полная поддержка 66Edge Полная поддержка ≤79Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка ДаSafari Нет поддержки НетWebView Android Полная поддержка 66Chrome Android Полная поддержка 66Firefox Android Нет поддержки НетOpera Android Полная поддержка ДаSafari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 9.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Экспериментальная. Ожидаемое поведение может измениться в будущем.

Смотрите также