mizuff_diary

もうあったものと、まだなかったもの

【JavaScript】非ユーザーがクリップボードを操作できないという話

概要

【Python】コマンドライン上で動くグラブルTwitter救援検索ツール - mizuff_diaryの追試です。
ユーザーが直接クリックすることなく、「クリップボードにコピー」の操作を行うことはできないのか? というお話。

これを読むのが早いです

developer.mozilla.org
Flashに依存することなく「クリップボードにコピー」を実装するにはexecCommand APIを利用することになると思います。そのAPIの仕様で、クリックなどのイベントをユーザー以外が発生させた場合はクリップボードの操作を行えないようになっていました。

これで話はほぼ終わりで、以下おまけ。

実装してみた

  1. ボタンクリック時の動作を設定

    1. アラートを表示する
    2. input内のテキストをクリップボードにコピーする
  2. ページ読み込み時に自動でボタンを1回クリックする

上記1、2の仕様のJavaScriptをそれぞれhtmlに埋め込みました。
ページ読み込み時、手動クリック時のそれぞれで意図通りの動作をするのか試しました。

結果

アラートを表示するほう

aのほうは期待通りの動作をしてくれました。f:id:mizuff:20180309180146p:plain:w500

クリップボードにコピーするほう

bのほうは読み込み時の動作でエラーを吐き、手動クリックしてあげるとコピーに成功しました。 f:id:mizuff:20180309180629p:plain:w500

その他

Gistを初めて使ってみました。引用が楽でいいですね。