dataTables复制到剪贴板干扰

时间:2018-06-12 08:40:24

标签: javascript datatables

我正在使用data-tables,使用按钮扩展名进行客户端处理。

在网站上,我显示一个表,我需要一个函数将div中包含的一些文本复制到剪贴板。我为此目的使用此代码:

var div = document.createRange();
div.setStart(container, 0);
div.setEndAfter(container) ;
window.getSelection().addRange(div);
document.execCommand("Copy");

这一切都正常,除非我在使用我的副本到剪贴板功能之前在数据表中选择一个条目。当我在表格中选择一个条目,然后使用我的副本到剪贴板功能时,它不仅会复制我的容器中所需的文本,还会复制数据表div内容。

我想这可能是我的js函数和dataTables按钮扩展的复制到剪贴板功能之间的一些干扰,它似乎提供了复制到剪贴板功能。

对此有何想法?

1 个答案:

答案 0 :(得分:0)

结果表明,dataTables在选择表格中的条目时会创建一个范围。 所以我检查一个范围是否已经存在,如果是 - 我删除该范围并继续创建我自己的范围。

这对我来说很好。如果有人感兴趣的话,这是代码片段:

  s = window.getSelection();
  if(s.rangeCount > 0) {
        for(var i = 0; i < s.rangeCount; i++) {
            s.removeRange(s.getRangeAt(i));
        }
        var div = document.createRange();
        div.setStart(container, 0);
        div.setEndAfter(container) ;
        window.getSelection().addRange(div);
        document.execCommand("Copy");
 }