获取 document.execCommand 的剪贴板提示的用户响应

Get user response of clipboard prompt for document.execCommand

我需要使用 document.execCommand('copy'); 在 JS 中复制剪贴板中的文本。 在现代浏览器中它运行良好,在 IE11 中有提示。

我怎样才能得到这个提示的用户响应??

我试过这段代码,但它returns总是true....

HTML :

<textarea id="test">totototototot</textarea>
<button id='btn'>copy</button>

JS :

$('#btn').click(function(){
  var area = document.getElementById('test');
  area.setSelectionRange(0, $(area).text().length);
  var succeed = false;
  try{
    succeed = document.execCommand('copy');
  }catch(e){
    succeed = false;
  }
  alert(succeed);
});

jsFiddle

有人有想法吗? :)

谢谢。

一种方法是检查剪贴板是否包含预期的文本。如果您无权检查文本,那么您也无权设置文本。如果您有访问权限,您可以检查它是否包含您期望的内容。

$('#btn').click(function(){
    var area = document.getElementById('test');
    area.setSelectionRange(0, $(area).text().length);
    document.execCommand('copy');
    var expectedText = $(area).text();
    var clipboard = window.clipboardData.getData('Text');
    if(clipboard && clipboard == expectedText){
        alert(':)');
    } else {
        alert(':(');
    }
});

https://jsfiddle.net/daveSalomon/q535ycse/8/