Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC


JavaScriptからのペーストボードの使用

Safari、Dashboard、およびWeb Kitベースアプリケーションには、HTMLコンテンツのカット、コピー、およびペースト操作に対応できるサポートが含まれています。

Contents:

JavaScriptのペーストボード操作の紹介
要素へのペーストボードハンドラの追加
ペーストボードデータの処理


JavaScriptのペーストボード操作の紹介

ペーストボード操作のサポートはJavaScriptで実装されおり、HTMLページのあらゆる要素に適用できます。ペーストボード操作を処理するには、次の6つのJavaScriptイベントを処理する関数を用意します。

oncutイベント、oncopyイベント、onpasteイベントについては、対応する操作に対してカスタムの動作を定義する場合にハンドラを提供することができます。また、onbeforecutイベント、onbeforecopyイベント、onbeforepasteイベントについても、実際のカット、コピー、またはペーストの前に対象データを処理する場合にハンドラを提供することができます。

oncutハンドラ、oncopyハンドラ、onpasteハンドラが実際にデータのカット、コピー、またはペーストを行う場合は、そのハンドラは、イベントオブジェクトのpreventDefaultメソッドを呼び出す必要があります。このメソッドはパラメータを受け取らず、ペーストボードへの、またはペーストボードからのデータの移動を、ハンドラが処理することをWeb Kitに知らせます。このメソッドを呼び出さなければ、Web Kitがデータの移動を引き受けます。イベントが発生したという通知が必要ない場合は、preventDefaultを呼び出す必要はありません。

要素へのペーストボードハンドラの追加

ペーストボードイベントのハンドラを、Webページの任意の要素に追加できます。ペーストボード操作が開始すると、Web Kitはその操作の対象となる要素に、該当するハンドラがあるかどうか探します。その要素においてハンドラが定義されていない場合、Web Kitは、その親要素を1つ1つ上がり、ハンドラを定義している要素を探します(ハンドラを定義している要素が1つもなければ、Web Kitはデフォルトの動作を適用します)。このプロセスを例示するために、Webページに次のような基本的なHTMLがあるものとします。

<body oncut="MyBodyCutFunction()"
        oncopy="MyBodyCopyFunction()"
        onpaste="MyBodyPasteFunction()">
    <span onpaste="MySpanPasteFunction()">Cut, copy, or paste here.</span>
</body>

ユーザがspanタグ内のテキストのカットまたはコピー操作を開始すると、Web KitはMyBodyCutFunctionまたはMyBodyCopyFunctionを呼び出してイベントを処理します。しかし、ユーザがテキストをspanタグにペーストしようとした場合は、Web KitはMySpanPasteFunctionを呼び出してイベントを処理します。MyBodyPasteFunction関数は、ペースト操作がspanタグの外側で発生した場合に限り呼び出されます。

ペーストボードデータの処理

あるイベントが発生すると、ハンドラは、そのイベントにアタッチされているclipboardDataオブジェクトを使ってクリップボードデータの取得と設定を行います。このオブジェクトはclearDataメソッド、getDataメソッド、setDataメソッドを定義して、クリップボードデータのクリア、取得、および設定を行うことができます。

注: セキュリティ目的のため、getDataメソッドはonpasteイベントハンドラ内からのみ呼び出すことができます。

Web Kitのペーストボードの実装は、HTMLドキュメントにある一般的なデータタイプ以外にも、多数のデータタイプをサポートしています。getDataまたはsetDataを呼び出すときには、対象データのMIMEタイプを指定します。Web Kitは、HTMLドキュメントで見られる標準タイプも含め、認識しているタイプのそれぞれを、既知のペーストボードタイプにマップしています。しかし、自分のアプリケーションが認識する任意のカスタムデータ形式に対応するMIMEタイプを指定することもできます。大部分のペーストボード操作では、おそらく、プレーンテキストやURIのリストなど、シンプルなデータタイプを扱うことになるでしょう。

Web Kitはまた、同じデータを複数の形式でペーストボードに貼り付ける機能もサポートしています。別の形式を追加するには、単に各形式ごとにsetDataを1回呼び出して、その形式のMIMEタイプとそのタイプに適合するデータ文字列を指定します。

ペーストボードで現在利用可能なタイプのリストを参照するには、clipboardDataオブジェクトのtypesプロパティを使用できます。このプロパティには、文字列の配列と利用可能なデータのMIMEタイプが含まれています。





Last updated: 2007-07-10




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice