Тема: ZeroClipboard, DataTables - копіювання тексту із браузера в буфер
Дуже цікава задача для джаваскриптизерів.
Отже, по-порядку:
1. Суть - потрібно скопіювати певний текст із бразура в буфер обміну по натисненні на певну кнопку.
Звісно, задача дика, оскільки браузери не призначені для такого і з метою безпеки не повинен взаємодіяти із ОС. Тому, злі люди придумали різні речі, одна із них - флешова штука ZeroClipboard. І ось тепер біда - бо замовники тепер хочуть мати в себе таку фічу!
2. Дехто пішов ще далі, до чудової бібліотеки DataTables - http://www.datatables.net/download/ додали таку підтримку того ZeroClipboard, щоб можна було копіювати в буфер вибрані рядки, стовпці і т.п. - https://cdn.datatables.net/tabletools/2.0.3/. Кнопки, створені за допомогою цієї бібліотеки і прив'язані до таблиці - працюють добре, нарікань нема.
3. Тепер же потрібно зробити окрему кнопку, яка не прив'язана до таблиці і повинна скопіювати текст із звичайного об'єкта textarea. Звісно, хотілося б скористатися уже тим, що є і не додавати у проект окремо бібліотеку ZeroClipboard.js, її флеш-файл, дописувати у залежності і т.п. Але тут і почались проблеми. Наразі, Я накидав макет того, що повинно було бути в реальності і чомусь цей макет ще гірше працює, ніж в тому реальному проекті.
3.1. html
3.2. table_zero.js
Лише таким чином мені вдалося заставити його копіювати текст без таблиці, але тут очевидно, що подія прив'язується лише після першого натискання і копіює уже за другим разом, коли textarea зникає. Коли ж Я пробував виносити це в document.ready чи на початок обробки події - нічого не працювало. Пробував також передати об'єкт clip як аргумент функції. Ніяких результатів.
І ось що теж дивно - на цьому макеті він відмовляється працювати взагалі. Є підозри на різницю версій, хоча Firebug не показує ніяких помилок чи ще чогось.
Отже, запитання:
1) що тут не так?
2) чи можна його все ж заставити працювати, а чи доведеться таки використовувати чистий ZeroClipboard?