結局イイカンジには出来ませんでした。
W3Cさん何とかしてくれぇ!
実行環境
まず実行環境が制限されます。
ChromeとFirefoxくらいでしか動きません。(少し修正すればIEも可能?)
Chrome バージョン 46.0.2490.71 m (64-bit)
FireFox 41.0.1
サンプルソース
<html> <head> <meta charset="UTF-8"> <title>クリップボードにコピー</title> <script type="text/javascript"> function copyClipboard() { // Ctrl + c を押すことで以下が実行される document.addEventListener('copy', function(e) { // コピーする対象を取得 var copySource = document.getElementById("source").value; var userAgent = window.navigator.userAgent.toLowerCase(); e.preventDefault(); // Chrome, fireFox のみ e.clipboardData.setData('text/plain', copySource); }); } </script> </head> <body> <div> コピー対象: <input type="text" id="source" name="name" /> </div> <input type="button" value="クリップボードへコピー" onclick="copyClipboard()" /> </body> </html>
実行テスト
コピー対象:
これでボタンを押したらコピー出来...ない!?
Ctrl + c を押す必要があるらしい。
document.addEventListener('copy', function(e)...の部分がCtrl + c を押した時に発火される模様。
セキュリティとかの問題があるのはわかるけどもうちょっとこう...なんとかならなかったんだろうか?
というわけで2015/10/27現在クリップボードへコピーする完全な方法はないみたいですね。というかこれそのうち使えなくなりそうですね。
え?Flash?またまたご冗談を。