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

时间:2016-01-25 15:31:32

标签: javascript internet-explorer-11

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

我如何获得此提示的用户响应??

我已尝试过此代码,但它始终返回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

有人有想法吗? :)

THX。

1 个答案:

答案 0 :(得分:0)

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

$('#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/