Help us understand the problem. What is going on with this article?

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

サンプルコード

※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のせいで調査に時間かかりすぎる。

iika0220
インフラはクラウド関連を少し、フロントやサーバーを関係をがっつりやってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away