ブログトップ 記事一覧 ログイン 無料ブログ開設

大人になったら肺呼吸 このページをアンテナに追加 RSSフィード Twitter

2011-04-05

IE以外のブラウザでもクリップボードを操作できるJavaScriptライブラリzeroclipboard

はじめに

f:id:replication:20110405231448p:image

このエントリでは、IE以外のブラウザでもクリップボードに値をコピーすることができるJavaScriptライブラリzeroclipboardについて書いています。

zeroclipboardでは、JavaScriptと見えないFlashコンテンツを駆使して、普通はクリップボードを操作できないIE以外のブラウザでもクリップボードに値をコピーすることが出来るようになっています。

僕の環境で確認したところ、Mac版のSafari5、Google Chrome10、Firefox4.0では正しく動作します。

zeroclipboardのデモページ
zeroclipboardの使い方

1. zeroclipboardプロジェクトのサイトからモジュールをダウンロードします。

f:id:replication:20110522161440p:image

2. モジュールを展開します。

3. 展開したファイルを一式サーバにアップロードします。

4. 他のJavaScriptライブラリ同様、scriptタグで読み込みます。

<script type="text/javascript" src="ZeroClipboard.js"></script>

ページのオンロード時にnew ZeroClipboard.Client()でオブジェクトを生成します。clip.glue('hoge');で指定した要素がクリップボードの操作対象の要素になります。

  window.onload = function() {
    clip = new ZeroClipboard.Client();
    clip.setHandCursor( true );
    clip.addEventListener('mouseOver', function (client) {
      // update the text on mouse over
      clip.setText($('fe_text').value);
    });
    clip.glue('hoge');
  }
注意点

仕様なのかは分からないのですが、対象のwebページとJavaScriptとflashファイルをすべて同じディレクトリに置かないとうまく動作しません。

swfファイルのパスを指定する場合は、以下のようにします。

ZeroClipboard.setMoviePath("./ZeroClipboard/ZeroClipboard.swf");
ボタンを押したときにクリップボードにコピーするサンプル
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Zero Clipboard デモページ</title>
<script type="text/javascript" src="ZeroClipboard.js"></script>
<script language="JavaScript">
	function $(id) { return document.getElementById(id); }
		
	var clip = null;
	window.onload = function() {
		clip = new ZeroClipboard.Client();
		clip.setHandCursor( true );
		clip.addEventListener('mouseOver', function (client) {
			// update the text on mouse over
			clip.setText($('fe_text').value);
		});
		clip.glue('hoge');
	}
</script>
</head>
<body>
<h1>Zero Clipboard デモページ</h1>
<h2>あなたのブラウザ</h2>
<p><script>document.write("Your browser: " + navigator.userAgent);</script></p>
<h2>テキスト</h2>
<textarea id="fe_text" cols=50 rows=5 >Copy me!</textarea>
<input type="button" id="hoge" value="クリップボードにコピーする">
</body>
</html>

JavaScriptの関連エントリ

つんつん 2011/05/21 18:05 こちらのサンプルではFF4で確認できるのですが、サンプルをゴッソリ真似してサーバーへアップしてテストしてもうまく動かないのですが・・・

replicationreplication 2011/05/22 16:21 >つんさん
swfファイルなど必要なファイルはそろっていますか?エントリを少し修正してみたので、再度試してみてください。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証