jQuery pluginクリップボード
- jQuery ZeroClipboard〔JS+透明SWF、Zero Clipboardライブラリを使用 ※Flash10.3対応〕
- Clipboard plugin for jQuery〔JS+透明SWF ※一部の環境で動作せず〕
jQuery ZeroClipboard
JS+透明SWF、Zero Clipboardライブラリを使用 ※Flash10.3対応
2011/6/18
jQuery ZeroClipboard
Zero Clipboardライブラリをベースに構築された、Webサイト上で「クリップボードへコピー」を行うことができるjQueryプラグイン。 JavaScript+目に見えないSWFで制御されています。
Adobe Flash 10およびそれ未満のバージョンに対応しており、Flash 10.3環境で試したところ、Chrome、Safari、Opera、IE8で問題なく動作。
段落や入力要素などIDで指定したあらゆる要素の中身や値をクリップボードにコピーできます。 コピーする前(beforeCopy)、コピーした後(afterCopy)をコールバックで受け取れるため、コピーの前後で対象要素のスタイルや文字を替えるなどの処理を入れる事ができます。
CSSの擬似要素「:hover」「:active」に対応しており、下記のようにCSSシートに記述することで、ホバー時、アクティブ時のスタイルを指定できます。
a:hover, a.hover {...}
a:active, a.active {...}
対象要素のzlicp()メソッドの有効・無効化を制御するには、zClip()メソッドに「show」、「hide」を指定します。
対象要素のzclip()メソッドに「remove」を指定すると、対象要素からzClipを削除することができます。 いちど削除すると、再び対象要素のzclip()メソッドに「show」しても、有効にはなりません。
$('a.copy').zclip('show');
$('a.copy').zclip('hide');
$('a.copy').zclip('remove');
copyパラメータには、クリップボードにコピーした文字列そのもの、またはその文字列を返す関数を指定してコピー後の処理を記述できます。
設置イメージ<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="ja" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="imagetoolbar" content="no" />
<title>設置サンプル</title>
<link rel="stylesheet" type="text/css" href="/content/lib/global.css" />
<!-- JS -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" src="/content/lib/jquery/zclip/jquery.zclip.js"></script>
<!-- CSS -->
<style type="text/css">
.para { padding:5px; border:1px dotted #ccc; }
#demo a { color:#666!important; border:1px solid #666; text-decoration:none; padding:3px 5px; }
#demo a:hover, #demo a.hover { color:#ff6699!important; border:1px solid #ff6699; }
#demo a:active, #demo a.active { color:#fff!important; background:#ff6699; border:1px solid #ff6699; }
</style>
</head>
<body>
<body>
<h1>設置サンプル</h1>
<p>参照:<a href='http://www.steamdev.com/zclip/' target='_blank'>jQuery ZeroClipboard</a></p>
<!-- CODE -->
<div id="demo">
<h3>例)段落の内容クリップボードにコピーし、アラート表示。</h3>
<p>
<a href="#" id="copy-desc">コピー</a>
<input type="button" id="btn_show" value="zClip有効化" disabled />
<input type="button" id="btn_hide" value="zClip無効化" />
<input type="button" id="btn_remove" value="zClip削除" />
</p>
<p id="desc" class="para">サンプルテキストです。</p>
<script type="text/javascript">
$(function(){
$("a#copy-desc").zclip({
path:"/content/lib/jquery/zclip/ZeroClipboard.swf",
copy:$("p#desc").text()
});
$("#btn_show").click(function(){
$('a#copy-desc').zclip('show');
$(this).attr("disabled","disabled");
$('#btn_hide').attr("disabled",false);
});
$("#btn_hide").click(function(){
$('a#copy-desc').zclip('hide');
$(this).attr("disabled","disabled");
$('#btn_show').attr("disabled",false);
});
$("#btn_remove").click(function(){
$('a#copy-desc').zclip('remove');
});
});
</script>
<h3>例)テキストフィードの値をクリップボードにコピーし、アラート表示。</h3>
<a href="#" id="copy-dynamic">コピー</a>
<p><input type="text" id="dynamic" value="にゅうりょくち" /></p>
<script type="text/javascript">
$(function(){
$("a#copy-dynamic").zclip({
path:"/content/lib/jquery/zclip/ZeroClipboard.swf",
copy:function(){ return $("input#dynamic").val(); }
});
});
</script>
<h3>例)コールバック関数を使用してコピー前後で表示を変える。</h3>
<a href="#" id="copy-callbacks">コピー</a><img src="/content/img/icon/color/action_check.gif" class="check" style="display:none; margin-left:5px; margin-bottom:-5px;">
<p id="callback-para" class="para">あいうえお。</p>
<script type="text/javascript">
$(function(){
$("a#copy-callbacks").zclip({
path:"/content/lib/jquery/zclip/ZeroClipboard.swf",
copy:$("#callback-para").text(),
beforeCopy:function(){
$("p#callback-para").css("background","#ffffcc");
$(this).css("color","orange").text("コピー");
},
afterCopy:function(){
$("p#callback-para").css("background","#cdf19c");
$(this).css("color","purple").next(".check").show();
}
});
});
</script>
</div>
<!-- / CODE -->
</body>
</html>
Clipboard plugin for jQuery
JS+透明SWF ※一部の環境で動作せず
2011/6/18
Clipboard plugin for jQuery v2.0.1
※Flash 10.3環境で試したところ、セキュリティの影響もあり、Chrome、Safari、Firefoxなどのモダンブラウザでは動作せず。IE8では下記のようなセキュリティアラートが表示されますが、アクセスを許可すれば動作しました。
設置イメージ指定した要素の内容をクリップボードコピーに保存するjQueryプラグイン。 JavaScript+目に見えないSWFで制御されています。 IEのネイティブメソッドと他ブラウザのFlashヘルパーを使用することで、クロスブラウザに対応させています。
パラメータでSWFのパス、デバッグモードの有無を指定可能です。
設置イメージ<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="ja" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="imagetoolbar" content="no" />
<title>設置サンプル</title>
<link rel="stylesheet" type="text/css" href="/content/lib/global.css" />
<!-- JS -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" src="/content/lib/jquery/jquery.clipboard-2.0.1/jquery.clipboard.js"></script>
<script type="text/javascript">
$(function(){
$.clipboardReady(function(){
$(".copy").click(function(){
$.clipboard($(this).attr("title"));
return false;
});
},
{
swfpath: "/content/lib/jquery/jquery.clipboard-2.0.1/jquery.clipboard.swf",
debug:false
});
});
</script>
<!-- CSS -->
<style type="text/css">
.copy { border:1px solid #ff6699; padding:3px 5px; margin:0 10px; color:#ff6699; cursor:pointer; }
.copy:hover { background:#ff6699; color:#fff; }
</style>
</head>
<body>
<body>
<h1>設置サンプル</h1>
<p>参照:<a href='http://bradleysepos.com/projects/jquery/clipboard/' target='_blank'>Clipboard plugin for jQuery</a></p>
<!-- CODE -->
<p>「copy」クラスを持つ要素をクリックすると、その要素のtitle属性の値をクリップボードにコピーします。</p>
<p>
<a href="#" class="copy" title="A要素をクリックしましたね">a要素の内容をコピー</a>
<span class="copy" title="SPAN要素をクリックしましたね">span要素の内容をコピー</span>
</p>
<p>
下記の要素をクリックすると、クリップボードに要素内のテキストがコピーされます。<br>
クリックしたら、テキストエリアに[Ctrl]+[C]で貼り付けて確認できます。
</p>
<p><textarea id="paste_area" cols="50" rows="6"></textarea></p>
<!-- / CODE -->
</body>
</html>