We Blog Weblog

コピーボタン

Web

2023年2月5日

コピーボタン

みなさんこんにちは。
ケミストのWeb担当みやのです。

「Web」記事では、これまでに得たWebに関する知識を記録として残していきたいと思います。

今回はクリックするだけで特定の文字列をコピーできるボタンを作ってみたいと思います。

うちのブログではGoogle Fontsの記事で使っています。

参考:フーノページ|JavaScript : テキストのコピーボタンを実装。

参考:Qiita|[JavaScript]クリップボードを使ったコピーとペースト

テキストエリアからコピー

① テキストエリアを設置します。

<textarea>コピーさせたいテキスト</textarea>

② ボタンを設置し、onclick属性を設定します。

<textarea>コピーさせたいテキスト</textarea>
			  
<button onclick="copy()">コピーする</button>

③ 以下のスクリプトを記述します。

function copy() {
  var text = document.getElementsByTagName("textarea")[0];
  text.select();
  document.execCommand("copy");
}

getElementsByTagName("textarea")でテキストエリアの内容を取得

selectで取得した内容を選択

execCommand("copy")でコピー

だそうです。勉強になります!

特定の文字列をコピー

① コピーさせたい文字列を記述します。idを適当に設定します。

<p id="original">こぴーさせたいてきすと</p>

② ボタンを設置し、onclick属性を設定します。

<p id="original">こぴーさせたいてきすと</p>
			  
<button onclick="copy2()">コピーする</button>

③ 以下のスクリプトを記述します。

function copy2() {
  var text = document.getElementById("original").innerText;

  var area = document.createElement("textarea");

  area.textContent = text;

  document.body.appendChild(area);

  area.select();
  document.execCommand("copy");

  document.body.removeChild(area);
}

こぴーさせたいてきすと

execCommand("copy")はテキストエリアかinput要素にしか使えないので、

createElement("textarea")でテキストエリアを生成

appendChild(area)でドキュメントに追加

execCommand("copy")でコピー

removeChild(area)で生成したテキストエリアを消す

なんだそうです。難しい・・・

まとめ

でいいとか言わない。

ペーストボタンはどうやってつくるのだろう。

この記事を書いた人
みやの
Web・DTP担当

Contact Us

ご意見、ご相談、料金のお見積もりなど、お気軽にお問い合わせください。

お問い合わせはこちら

TOP