1. ZeroClipboardを読み込む
<script src="http://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.2.0/ZeroClipboard.min.js"></script>
2. コピーするテキストとボタンの場所を指定
<input id="text" value="Sample Text"> <button id="btn">コピーする</button>
var btn = document.getElementById("btn"); var text = document.getElementById("text"); var clip = new ZeroClipboard(btn); clip.on("ready beforecopy", function() { btn.dataset.clipboardText = text.value; });
3. Flashの有無でボタン非表示
ZeroClipboardはFlashを使用しているためFlashが無効な環境では使用できない。
そのためFlashが使用できない場合は以下の記述でボタンを非表示にする。
try { if(!new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { btn.style.display = "none"; } } catch(e) { if(navigator.mimeTypes ["application/x-shockwave-flash"] === undefined) { btn.style.display = "none"; } }
備考
- ZeroClipboard v2.xはIE9以上でないと使用できないためIE8以下で使用する場合はZeroClipboard v1.xを読み込む
- ローカル(file:~)の環境ではコピーできない
- Flash無効時はボタン非表示の処理は必ず入れておく
- Flashがインストールされていないとコピーできないのでスマートフォンやタブレット専用サイトでは使用しない