@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

JavaScriptでクリップボードにコピーする

Safari 10からようやくサポートされたので、自分が利用する部分にもようやく導入した。

実装例

clipboard.jsなるものもあるが、これはDOMの指定が必要っぽくて少し使いづらかった。 clipboardjs.com

中身は document.execCommand なので、そっち方面で見つけたStackOverflowの回答をベースにjQuery依存を削除した。

stackoverflow.com

  • サンプル
// コールバックあり
copy('some text', function(text){
  console.log('copied: '+text);
});
// コールバックなし
// アラートダイアログでコピーしたテキストが表示される
copy('some text');

使用例

ブックマークレットで現在見ているページのリンクをタイトルつきで org-modeやMarkdownフォーマットでコピーする

copy('[['+location.href+']['+document.title+']]');
copy('['+document.title+']('+location.href+')');

今までpromptで表示して手動でコピーしていたのでこれはとても便利。

サポート状況

developer.mozilla.org

記事執筆時点ではこんな感じ。

f:id:peccu:20161106150715p:plain f:id:peccu:20161106150804p:plain