結局イイカンジには出来ませんでした。
W3Cさん何とかしてくれぇ!
実行環境
まず実行環境が制限されます。
ChromeとFirefoxくらいでしか動きません。(少し修正すればIEも可能?)
Chrome バージョン 46.0.2490.71 m (64-bit)
FireFox 41.0.1
サンプルソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <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?またまたご冗談を。