Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получение данных из буфера по ctrl + v (https://javascript.ru/forum/events/50938-poluchenie-dannykh-iz-bufera-po-ctrl-v.html)

zhurchik 17.10.2014 15:37

Получение данных из буфера по ctrl + v
 
Здравствуйте.
Я хочу получить содержимое буфера (я знаю, что напрямую их получить нельзя). Я хочу получить данные именно тогда когда пользователь нажимает сочетание клавиш ctrl + v я знаю, что данные можно вставить в текстовое поле и оттуда их достать, но я хочу их получить не вставляя в текстовое поле.

К примеру пользователь нажал ctrl + v скрипт предотвращает действие браузера по умолчанию и получает данные с буфера.
Опять повторюсь, данные я хочу получить не из текстового поля, а из буфера.

МОжет быть есть возможно получить доступ к буферу по сочетанию клавиш ctrl + v

zhurchik 17.10.2014 15:38

Ведь по сути не опасно получить данные из буфера, если пользователь сам того желает

danik.js 18.10.2014 00:13

Ну если поле редактируемое (т.е textarea/input или contenteditable) то тогда просто ловишь событие paste, и получаешь данные из clipboardData.
Ну это на словах просто, на деле куча проблем с кроссбраузерностью.

rekzi 18.10.2014 01:54

Доступ к буферу закрыт по соображениям безопасности. А если использовать редактируемые объекты как то input и прочее, то доступ к данным возможен через объект события как написал danik.js. Тебе нужно перед пользовательским вводом сфокусироваться (el.focus()) на скрытом элементе (за пределами экрана). Для стареньких браузеров можно вызывать функцию забирающую данные с input через интервал.

zhurchik 18.10.2014 17:14

Можно ли кроссбраузерно сфокусироваться в определенном месте? Т.е. если в поле имеется текст и фокус стоит посередине я при помощи JS изменил положение фокуса на другое поле и хочу обратно вернуть в тоже место.
Можно ли кроссбраузерно вернуть его?

danik.js 18.10.2014 19:31

Вроде можно. Если не нужна поддержка старых браузеров, можешь юзать clipboardData. Долгое время clipboard API отсутствовал в Firefox, но потом все-таки добавили. В старой опере его нет (там даже copy/paste событий кажется нет). В старых версиях хрома и Safari этот объект есть, но он сломан. В IE все ок по-моему, только старые (а может не только старые) версии не понимают записи getData('text/plain') (нужно getData('Text') )

zhurchik 18.10.2014 20:33

danik.js,
Спасибо большое.

Кстати, а есть вообще какая либо статистика о том какие браузеры (о современных версиях я имею ввиду) на сегодняшний день используются большинством?

rekzi 18.10.2014 21:28

http://www.liveinternet.ru/stat/ru/b...l?period=month

kostyanet 22.10.2014 14:57

Цитата:

Сообщение от zhurchik
Ведь по сути не опасно получить данные из буфера, если пользователь сам того желает

Опасно. Ctrl+V не доказывает что было такое желание.

danik.js 22.10.2014 16:19

Цитата:

Сообщение от kostyanet
Ctrl+V не доказывает что было такое желание

Вот вот:

Цитата:

Уважаемый юзер, нажми Ctrl+V чтобы получить печеньку!


Часовой пояс GMT +3, время: 20:50.