LoginSignup
0
0

More than 3 years have passed since last update.

jquery(javascript)でクリップボードにコピーする

Posted at

サンプルコード

※2019/12のサンプルコードになります。
ボタン押下などで動作するようにはしています。
サンプルコード内にコメントを記載したので、注釈的な記述はとりあえず省略。

clipboardCopy.js
/**
* @string text:コピーするテキスト
*
**/
function clipboardCopy(text) {
    // コピーするテキストが空の時は放置民
    if(text != ""){
        // 閲覧中のブラウザの情報を取得
        var userAgent = window.navigator.userAgent.toLowerCase();

        // ブラウザで処理を分岐
        if(
            userAgent.indexOf('msie') != -1// IE10以下
            || userAgent.indexOf('trident') != -1// IE11
        ) {
            // クリップボードにコピー
            window.clipboardData.setData("text",text);
        } else if(
            userAgent.indexOf('edge') != -1// Edge
            || userAgent.indexOf('chrome') != -1// Chrome
            || userAgent.indexOf('safari') != -1// Safari
            || userAgent.indexOf('firefox') != -1 //FireFox
            || userAgent.indexOf('opera') != -1// Opera
        ) {
            var listener = function(e){
                e.clipboardData.setData("text/plain" , text);
                // 本来のイベントをキャンセル
                e.preventDefault();
                // 終わったら一応削除
                document.removeEventListener("copy", listener);
            }
            // コピーのイベントが発生したときに、クリップボードに書き込むようにしておく
            document.addEventListener("copy" , listener);

            // コピー
            document.execCommand("copy");
        }
    }else{
        // 空の時はalertでもやっとく?
    }
};

注釈(後日)

最後

もう少し調査したかったけど、一端糸冬了。
IE11のせいで調査に時間かかりすぎる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0