Копируем в буфер обмена без Flash
26 мая 2015
Trello уже довольно продолжительное время позволяет нажать CTRL + C при наведённом на карточку курсоре мыши и получить в буфер обмена ссылку на эту карточку. Удобно, но вроде ничего необычного, я такое уже делал в Stay.com при помощи Flash.
Trello не использует Flash и это заметили пользователи StackOverflow. Через какое-то время подтянулся автор кода и рассказал, как это работает.
На самом деле с буфером обмена Trello не работает. При нажатии CTRL текст пишется в создаваемый <textarea>
и туда ставится фокус. То есть когда мы нажимаем C текст копируется. Когда CTRL отпускается, <textarea>
скрывается.
Код приведён там же в вопросе на StackOverflow.
Комментарии RSS по email OK
Очень элегантное решение! :) Пусть клиент сам запихает текст в буфер...
А вот по коду - интересно, откуда взялся такой стиль выставления атрибута:
container.setAttribute('style', [, 'position: fixed;', ..., 'opacity: 0;'].join(''))
?Какбы, более компактно записать все в строку. Убирать значения из такой конструкции столь же неудобно как и из строки. В общем - кроме вреда, никакой пользы не вижу.
Ну и попридираться... точки с запятой отсутствуют, глаз режет.
Жаль что нельзя использовать для копирования в буфер по кнопке как на гитхабе команду для клонирования.
Евгений, это можно при помощи Flash сделать. Не совсем хорошее решение, но лучше вроде нет.
Я знаю, но когда увидел заголовок, то подумал, что решили именно эту задачу без flash :(
Сергей,
Это некрасиво и в будущем тяжело рефакторить. Так что вариант с массивом лучше
Это минифицированный код. Скорее всего в сырцах всё отформатировано как с CSS и выглядит очень красиво.
не Tello, а Trello - первое слово в посте
fixed.
А еще есть совсем простое решение:
Отвлекает...
yiiwheels.com - Вот здесь подобное
zenorocha.github.io/clipboard.js/ Без Flash, используя textarea
Fate, в Safari только не работает.
«Fate, в Safari только не работает.»
Уже работает