view source

JavaScript

document.title = 'クリップボードにテキストをコピー';
$(function(){

  var div = $('<div>');
  var input = $('<textarea>').val('@gmail.com');
  var br = $('<br>');
  var btn = $('<button>').text('copy');

  if(location.search){
    var v = location.search.substring(1);
    v = decodeURI(v);
    input.val(v);
  }

  div.append(input).append(br).append(btn);
  $('#demo').append(div);

  btn.on('click', function(){
    var copyText = input.val();
    input.select();
    var listener = function(e){
      const selection = document.getSelection();
      //e.clipboardData.setData('text/plain' , copyText);    
      e.preventDefault();
    }
    document.addEventListener('copy' , listener);
    document.execCommand('copy');
    input.fadeOut(100).fadeIn(100);//演出
  });


  input.on('dblclick', function(){
    //var copyText = input.val();
    input.select();
    var listener = function(e){
      const selection = document.getSelection();
      e.clipboardData.setData('text/plain' , selection); 
      //e.clipboardData.setData('text/plain' , copyText);  
      e.preventDefault();
    }
    document.addEventListener('copy' , listener);
    document.execCommand('copy');
    input.fadeOut(100).fadeIn(100);//演出
  });
});

CSS

/*
縦横中央揃え
*/

#demo{
  display: flex;
  justify-content: center;
  align-items: center;
}

#demo textarea{
  width:320px;
  height:200px;
  vertical-align: top;
}
#demo button{
  display: block;
  width:320px;
  height:80px;
}

HTML

ページのソースを表示 : Ctrl+U , DevTools : F12

view-source:https://hi0a.com/demo/-js/js-copy-clipboard/

ABOUT

hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。

プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。

必要な機能の関数をコピペ利用したり勉強に活用できます。

プログラムの動作サンプル結果は画面上部に出力表示されています。

環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。

画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。

動く便利なものが好きなだけで技術自体に興味はないのでコードは汚いです。

途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。