開いているページのタイトルと URL をクリップボードにコピーするブックマークレット

Twitter 投稿やメール送信用に、開いているページのタイトルと URL をコピーしたいことがあったので作った。

いきなりだがブックマークレットは以下のとおり。

javascript:((d,e)=>{e=d.createElement('textarea');e.textContent=d.title+' '+d.URL;d.body.appendChild(e);e.select();d.execCommand('copy');d.body.removeChild(e)})(document);

セルフ Uglify したもので、圧縮前のコードはこんな感じ。

((d, e) => {
  e = d.createElement('textarea');
  e.textContent = d.title + ' ' + d.URL;
  d.body.appendChild(e);
  e.select();
  d.execCommand('copy');
  d.body.removeChild(e);
})(document);

テキストエリアを作り、そこにコピーしたい文字列を書いておく。一度ページに埋め込んだら、テキストエリアを選択してコピーし、要素を削除して終わり。

document.execCommand('copy') は、コピーに成功すると true を返すので、戻り値をチェックして処理を変えたりしても良いだろう。