通常、サイト上でコピーをしたい文字列があるときはテキストを選択して「ctrl」+「c」でコピーすると思います。
ですがコピーするときに選択するテキストを間違えてしまったりちゃんとコピーさせるためにjsを使うことによってユーザーがボタンクリック一つでコピーさせることができます。
クリップボードにコピーさせる方法としては、jsのプラグインを使う方法、javascriptを使う方法、jQueryを使う方法の3種類があります。
実際には、プラグインを使わずに数行から十行くらいのjsを書けばクリップボードのコピー処理はかけてしまいます。
今回は、jQueryを使ってボタンをクリックしたときに設定しておいた文字列をコピーさせる方法を紹介していきます。
HTML
<div class="clipboard">
<div class="clipboard_copy_txt">abc12345678</div>
<button type="button" class="copy_btn">こちらをクリックするとコピーできます!</button>
</div>
補足
「clipboard_copy_txt」クラスには、コピーさせたい文字列をあらかじめ入れておきます。
上のソースでは「abc12345678」というテキストをコピーさせたいので「clipboard_copy_txt」クラスには 「abc12345678」というテキストを入れておきます。
「copy_btn」クラスの要素は、コピーするボタンになります。
CSS
<style>
.clipboard_copy_txt{display: none;}
</style>
今回はコピーする文字列は見えないようにしておきたいのでコピーさせるテキストを入れている「clipboard_copy_txt」クラスの要素を「display: none;」で非表示にしておきます。
jQuery
jQuery(function() {
jQuery('.copy_btn').on('click', function(){
//コピーさせたい文字列を取得
var text = jQuery('.clipboard_copy_txt').text();
//textareaタグを追加
jQuery(this).append('<textarea class="clipboard_textarea">' + text + '</textarea>');
//textareaの文字を選択
jQuery('.clipboard_textarea').select();
//コピー
document.execCommand('copy');
//textareタグを削除
jQuery('.clipboard_textarea').remove();
// アラート文の表示
alert('文字列「' + text + '」をコピーしました');
});
});
「copy_btn」クラスのボタンをクリックしたらコピーさせたい文字列を取得します。
その次にコピーさせた文字列をtextareaにセットしてタグとして追加します。
textareaの文字列を選択状態にします。
そしてdocument.execCommand(‘copy’);でコピーします。
コピーが完了したら textareaを削除してアラートでコピーした文字列をポップアップで表示します。
サンプル
最後に
どうでしょうか?
それほど難しくなかったと思います。
これくらいならプラグインを使わなくても作れますね。
コメント