JavaScriptで文字列をクリップボードにコピーする
純粋なJavaScriptを使う方法
入力フォームにある文字をコピーする方法である。
<input type="text" value="こんにちは。" id="myText">
<button onclick="copyText()">文字列をコピー</button>
function copyText() {
var copyText = document.getElementById("myText");
copyText.select();
document.execCommand("copy");
alert("コピーされた文字列: " + copyText.value);
}
参考: IE9以下ではdocument.execCommand()メソッドはサポートされない。
clipboard.jsを使う方法
clipboard.jsを利用したクリップボード操作について見ていく。関連サイトは次のとおりである。
まずライブラリを追加する必要がある。CDNを使う方法を推奨する。
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script>
例1) 入力フォームのクリップボード
<input id="foo" value="http://www.devkuma.com">
<button class="btn" data-clipboard-target="#foo">
<img src=".btn" alt="Copy to clipboard">
</button>
例2) テキストのクリップボード
<button class="btn" data-clipboard-text="こんにちは。">Copy</button>
var clipboard = new ClipboardJS('.btn');
clipboard.on('success', function(e) {
console.info('Action:', e.action);
console.info('Text:', e.text);
console.info('Trigger:', e.trigger);
alert("クリップボード: " + e.text);
});
clipboard.on('error', function(e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});