DataTables копировать в буфер обмена - PullRequest
0 голосов
/ 12 июня 2018

Я использую data-tables, обработку на стороне клиента с расширением кнопок.

На сайте я отображаю таблицу, мне нужна функция для копирования некоторого текста, содержащегося в div, в буфер обмена.Я использую этот код для этой цели:

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

Все работает нормально, если только я не выбрал запись в таблице данных, прежде чем использовать функцию копирования в буфер обмена.Когда я выбираю запись в таблице, а затем использую свою копию в функцию буфера обмена, она будет не только копировать нужный текст из моего контейнера, но также и содержимое div datatables.

Полагаю, это может быть помехоймежду моей функцией js и функцией копирования в буфер обмена расширения кнопки dataTables, которые, кажется, предлагают функцию копирования в буфер обмена.

Есть мысли по этому поводу?

1 Ответ

0 голосов
/ 12 июня 2018

Оказывается, 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");
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...