ClipboardItem
ClipboardItem はクリップボード API のインターフェイスで、 クリップボード API を介して読み書きする単一の形式の項目を表します。読み書きはそれぞれ clipboard.read() と clipboard.write() で行います。
データを表現するために ClipboardItem インターフェイスを持つことの利点は、開発者がファイルタイプやデータの様々な範囲に簡単に対処できることです。
クリップボードの内容へのアクセスは権限 API の下で制限されています。クリップボードへの書き込み権限は、ページがアクティブなタブにあるときに自動的に付与されます。 clipboard-read 権限は要求する必要があり、これはクリップボードからデータを読もうとすることで行えます。
メモ: テキストを扱うには、 Clipboard インターフェイスの Clipboard.readText() および Clipboard.writeText() メソッドをご覧ください。
メモ: 一度に渡すことができるクリップボードの項目は 1 つだけです。
コンストラクター
プロパティ
このインターフェイスは以下のプロパティを提供しています。
types読取専用-
この
ClipboardItem内で利用できる MIME タイプの配列 (Array) を返します。 presentationStyle読取専用-
"unspecified","inline","attachment"のいずれかを返します。
メソッド
例
クリップボードへの書き込み
ここでは、ClipboardItem() に新しい Fetch API を記述し、そのレスポンスの blob() メソッドを用いて、新しい ClipboardItem を生成しています。
js
async function writeClipImg() {
try {
const imgURL = '/myimage.png';
const data = await fetch(imgURL);
const blob = await data.blob();
await navigator.clipboard.write([
new ClipboardItem({
[blob.type]: blob
})
]);
console.log('Fetched image copied.');
} catch (err) {
console.error(err.name, err.message);
}
}
クリップボードからの読み取り
ここでは、 clipboard.read() メソッドでクリップボード上の全項目を返しています。次に、 ClipboardItem.types プロパティを利用して getType() の引数をセットし、対応する blob オブジェクトを返します。
js
async function getClipboardContents() {
try {
const clipboardItems = await navigator.clipboard.read();
for (const clipboardItem of clipboardItems) {
for (const type of clipboardItem.types) {
const blob = await clipboardItem.getType(type);
// we can now use blob here
}
}
} catch (err) {
console.error(err.name, err.message);
}
}
仕様書
| Specification |
|---|
| Clipboard API and events # clipboarditem |
ブラウザーの互換性
BCD tables only load in the browser