Labs/Jetpack/JEP/10: Difference between revisions
Line 21: | Line 21: | ||
Clipboard access will live at <code>jetpack.os.clipboard</code>. The <code>jetpack.os</code> will provide access to anything that relates to the OS (file access, OS info, etc.) | Clipboard access will live at <code>jetpack.os.clipboard</code>. The <code>jetpack.os</code> will provide access to anything that relates to the OS (file access, OS info, etc.) | ||
==== Setting the clipboard ==== | |||
<pre class="brush:js;toolbar:false;"> | <pre class="brush:js;toolbar:false;"> | ||
Line 29: | Line 29: | ||
''Arguments'' | ''Arguments'' | ||
<code>data</code>: 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. | |||
<code>dataType</code> (optional): Let's Jetpack know what kind of data is being passed in, in [http://en.wikipedia.org/wiki/Internet_media_type mime-type format]. For example, a unicode string would take <code>"text/unicode"</code>, HTML would be <code>"text/html"</code>, and an PNG would be <code>"image/png"</code>. If <code>dataType</code> isn't passed in, Jetpack makes its best guess. | |||
<pre class="brush:js;toolbar:false;"> | <pre class="brush:js;toolbar:false;"> | ||
Line 40: | Line 41: | ||
''Arguments'' | ''Arguments'' | ||
<code>options</code>: A dictionary containing key-value pairs of <code>data</code> and <code>dataType</code>. | |||
''Examples'' | |||
An example of setting the clipboard in action is as follows: | An example of setting the clipboard in action is as follows: |
Revision as of 11:17, 27 May 2009
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()