[JavaScript] 表示いるページURLなど特定文字コピーさせる方法

2 min read

背景

ブログの記事などの URL をコピーさせるための機能が欲しい。

方法

textareainputなどのテキストを入力できる要素に入力されている値をdocument.execCommand("copy")を使うと、クリップボードに書き込むことができる。

大まかな copy の仕方は下記の通り。

const textarea = document.querySelector("textarea");
textarea.select();
document.execCommand("copy");

実例

// クリックしたらコピーさせるボタン
const button = document.querySelector("button");

button.addEventListener("click", (e) => {
  e.preventDefault();

  // 入力要素を作る
  const input = document.createElement("input");
  // 入力要素に表示中のURLを挿入する
  input.value = location.href;
  // DOM上に入力要素を挿入する
  document.body.appendChild(input);
  // 入力した文字を選択する
  input.select();
  // クリップボードに書き込む
  document.execCommand("copy");
  // 要素を削除する
  input.remove();
});

記事の URL なので、location.hrefを使用しているが、input.valueに入れる値は任意のもので良い。

サンプル

このページをシェアする

Related Articles

[ESLint] 特定のimportにおいてパスの末尾スラッシュを禁止する方法

背景 / やりたいこと / @typescript-eslint/no-restricted-imports を利用した / 余談(末尾のスラッシュ自体を禁止にする)

`<input type="range">`のstepを可変にする方法

仕様 / 完成デモ / 実装 / 参考

[Vite] CSSだけをビルドする方法

背景 / Vite をインストール / 仕様

CSS in JSとは何か

想定読者 / そもそも JS フレームワーク(React、Vue.js)を採用する理由とは何か / 「命令的 UI」 と 「宣言的 UI」 / 「命令的 UI」 VS 「宣言的 UI」 / CSS in JS とは / CSS in JS ライブラリ / Emotion の使い方 / 利用するメリット / 利用するデメリット / 関連 / Footnotes

[CSS in JS] 外部のリセットCSSを使う方法

目的 / 課題 / おまけ