Labs/Jetpack/JEP/10
JEP 10 - Clipboard Support
- Author: Aza Raskin <aza at mozilla dot com>
- Champion: Aza Raskin <aza at mozilla dot com>
- Status: Draft
- Type: API Track
- Created: 26 May 2009
Introduction and Rationale
This JEP describes OS clipboard access to the Jetpack API.
A number of Jetpacks have already implemented their own versions of clipboard access. It makes sense to unify the API and allow for a clean way for Jetpacks to get and set the clipboard in a variety of formats.
As part of this proposal is adding a jetpack.os
namespace.
Proposal
Clipboard access will live at jetpack.os.clipboard
. The jetpack.os
will provide access to anything that relates to the OS (file access, OS info, etc.)
Setting the clipboard
jetpack.os.clipboard.set( options )
Arguments
data
: The value to be placed into the system clipboard. It can be anything, a string, a unicode string, a number, an image, and HTML fragment, etc.
dataType
(optional): Let's Jetpack know what kind of data is being passed in, in mime-type format. For example, a unicode string would take "text/unicode"
, HTML would be "text/html"
, and an PNG would be "image/png"
. If dataType
isn't passed in, Jetpack makes its best guess.
jetpack.os.clipboard.set( options )
Often it is necessary to put multiple formats/views of the same data into the clipboard. This way, when another program tries to access the data stored in the system clipboard, it can get the data in the format it knows how to handle.
Arguments
options
: A dictionary containing key-value pairs of data
and dataType
.
Examples
An example of setting the clipboard in action is as follows:
var words = "The quick brown fox jumped over the lazy dog."; jetpack.os.clipboard.set( words ); var html = "<div>Hello <i>there!</i></div>"; jetpack.os.clipboard.set( html, "text/html" ); jetpack.os.clipboard.set({ "hai2u", "text/plain", "hai<b>2u</b>", "text/html", "はい2u", "text/unicode" });
Getting the clipboard
var value = jetpack.os.clipboard.get()