Clipboard Test

This tests the HTML5 DataTransfer object in the paste event. Copy and paste things into the input field below to see what your system does. This page tries to extract and visualize all possible information from the clipboard. I also added drag/drop support to this page for comparison since that also uses DataTransfer but most browsers support files for drag/drop and not copy/paste.

I did this investigation because I'm writing a web application that needs to interoperate with other native applications via the clipboard. The clipboard is currently probably the part of the web platform that's the furthest behind basic native application functionality. It's really important to expose all content on the clipboard instead of just text/plain, text/html, and maybe image/png because those formats are lossy and usually contain either flattened information or nothing. For example, copying and pasting from Keynote puts the following formats on the clibpoard: com.apple.iWork.TSPDescription, com.apple.iWork.TSPNativeData, com.apple.iWork.TSPNativeMetadata, image/png, image/tiff, public.png, and public.tiff. Any web applications wanting to import content from Keynote will need access to the "com.apple.iWork" formats to be able to do anything useful. This page only tests copying externally and pasting into a page, but copying on the page and pasting externally is also really important. I'm not sure what support looks like for that yet.

Paste support as of May 2015:

Clipboard Chrome
(OS X)
Chrome
(Windows)
Firefox
(OS X)
Firefox
(Windows)
Safari1 IE112
text/plain, text/html
image/png
Files
Anything

1 Safari gives access to all clipboard formats but the DataTransfer.getString API only works for textual content. This appears to be a problem with the spec and isn't Safari's fault. Copying and pasting of files seems like it's supposed to work except I get "Failed to load resource: WebKit encountered an internal error" when trying to use URL.createObjectURL and FileReader.readAsArrayBuffer. Most browsers whitelist clipboard formats for some reason, which means the interesting data is usually unaccessible.

2 Internet Explorer doesn't follow the spec and puts the "clipboardData" property on the window instead of the event (and their response indicates they are ignoring the issue). After fixing that, it appears that the "types" array is always null even when pasting plain text. Their clipboard support appears to be completely non-existent as far as I can tell.

Paste here: