2016-11-07 4 views
0

ボタンをクリックすることなくテキストエリアからテキストをコピーしようとしています。 execCommand('copy')を使用していますが、ボタンをクリックしてプログラムではなく、テキストをコピーすることができます。ボタンをクリックしたときにexecCommandを使用してテキストのみがコピーされる

これを行う方法はありますか?

var button = document.querySelector('button'); 
 
var area = document.querySelector('textarea'); 
 

 
button.addEventListener("click", function(){ 
 
    area.select(); 
 
    var msg = document.execCommand('copy') ? "successful" : "unsuccessful"; 
 
    console.log("Copy " + msg); 
 
}); 
 

 
button.click(); // Does not copy successfully
<textarea>Text to Copy</textarea> 
 
<button>Copy</button>

答えて

0

いいえ、クリップボードへの変更は、ユーザによって開始されなければなりません。

参照:イベントは、ユーザーが信頼され、トリガされ イベントから派遣されている場合https://w3c.github.io/editing/execCommand.html#dfn-the-copy-command

コピーコマンドdocument.execCommand(からトリガ)が唯一の真のクリップボードの 内容に影響を与えるだろう、またはこれを可能にするように 実装が構成されている場合クリップボードへの書き込みアクセスを許可するように を実装する方法は、この仕様の範囲 の範囲外です。