document.execCommand(' copy')在IE和Edge

时间:2017-03-30 14:55:56

标签: javascript jquery angularjs

我在我的应用程序中使用copyToClipboard。它在Chrome和Firefox浏览器中运行良好,IE和Firefox除外。

IE (特别是版本11)中,点击复制,它会引入一个本机浏览器弹出窗口,要求允许或拒绝并且滚动到页面底部。

弹出窗口介绍很好,但我需要停止向下滚动。

代码:

$scope.copyData = function(id) {
    var copyAreaObject = document.createElement('textarea');
    $scope.copyInitialize(id, copyAreaObject);
    var selector = document.querySelector('#copyWrapper');
    selector.select();
    document.execCommand('copy');
    document.body.removeChild(copyAreaObject);
  };

Click Here for Demo

2 个答案:

答案 0 :(得分:6)

尝试了Deigo Plutino的回答,其他属性如下所示:

copyAreaObject.style.position = 'fixed';
copyAreaObject.style.bottom= 0;
copyAreaObject.style.left= 0;

它工作正常并防止滚动问题。在Edge和IE 11中测试过。

有关详情,请参阅此帖:How do I copy to the clipboard in JavaScript?

答案 1 :(得分:1)

一个简单的解决方法是将textarea的样式“position”设置为“fixed”,因此IE不需要滚动。

copyAreaObject.style.position = "fixed";