JavaScript クリップボードへデータを保存する

IEでは、JavaScriptを使ってクリップボードに文字列をコピーしたり、逆にクリップボードからデータを引き出す事が出来ます

DVDからサイト構築まで

カテゴリー

おすすめサイト

RSS

JavaScript クリップボードへデータを保存する

2007/01/17 19:58

IEの場合、JavaScriptでクリップボードを使ってデータをコピーしたり、逆に取り出したりすることが出来ます。

クリップボードへテキストデータをコピーする

クリップボードへテキストデータをコピーするには、以下のようにします。

var copyText = "コピーしたいテキストデータ";
if (false == clipboardData.setData( "text" , copyText )){
  alert("クリップボードへのコピーに失敗しました");
}

IE7以降では

クリップボードへコピーするとこのような警告が出ますIE7以降のブラウザでは、左画像のような警告が出ます。

また、Firefox等の他のブラウザでは動作しません。

クリップボードからテキストデータを取り出す

今度はクリップボードからテキストデータを取り出す方法です。
なお、テキストデータでないと取り出せません。

alert("クリップボードのデータは「" + window.clipboardData.getData("Text") + "」です");

クリップボードにコピーしたURLを利用する

クリップボードにコピーしたURLを入力欄に記述するような場合は、

function enterUrl( ){
  var url = prompt('Enter URL:',  window.clipboardData.getData("Text"));
  if (tag){
    document.getElementById("url").value = url;
  }
}

上記を実行させると、
<input type="text" name="url">
というような入力欄があれば、URLを記述を則すアラートが表示されますが、クリップボードにテキストデータがある場合は、そのテキストデータが入力された状態で表示されることになります。

IE7以降では

クリップボードからデータを引き出す場合は、このような警告が出ます先ほどのクリップボードにデータをコピーする場合にも警告が出ましたが、当然こちらも場合によっては大事なデータを悪質なサイトに盗まれる可能性があるので、IE7以降はこうしたスクリプトが埋め込まれていると、実行と同時に警告が出ます。
左の画像は、クリップボードからテキストデータを取得しようとしたときに表示された警告。
どちらかというと、先ほどのようにダイアログで警告してくれた方がわかりやすいような気が・・・。

クリップボードの内容を消す

クリップボードにコピーしたデータを消すことも出来るので最後にそちらを紹介しておきます。

clipboardData.clearData( );

clearDataメソッドは引数に「"Text"」か「"BoxText"」を指定できるんですけれど、何も渡さないと全ての形式のクリップボードの内容を削除することが出来るようです。