копировать в буфер при помощи javascript
Предупреждая гнобеж в стиле "говносайты не должны изменять буфер обмена"- скажу, что это не моя прихоть.
Все же интересно узнать как это у гугла реализовано.
Там можно произвольную область ячеек скопировать в буфер без всякого флеша, причем во всех последних версиях браузеров.gdocs не копирует сам ничего в буфер обмена, обмен делается своими средствами
Как они обходят безопасность?
почему ты решил, что он что-то копирует?
можешь организовать свой локальный буфер обмена
gdocs не копирует сам ничего в буфер обмена, обмен делается своими средствамиИменно что копирует в буфер обмена. Гугловский веб-буфер не интересует.
Простой эксперимент: выделим произволную область ячеек в гугл спредшитс и из контектсного меню выберем пункт "Скопировать". Помимо копирования в веб-буффер гугла, контент копируется в буфер обмена операционки. Его можно вставить потом, например, в блокнот
Простой эксперимент: выделим произволную область ячеек в гугл спредшитс и из контектсного меню выберем пункт "Скопировать".так это может сам браузер и копирует.
например, пункт в меню Copy нифига в clipboard ничего не добавляет
Online Spreadsheets hook Ctrl+C, Ctrl+V events and transfer focus to a hidden TextArea control and either set its contents to desired new clipboard contents for copy or read its contents after the event had finished for paste.
При выделении области ячеек фокус получает скрытый textarea
При возникновении событий Ctrl+C(V) браузер работает уже с textarea
?
Или сначала отлавливается событие, потом ставится фокус и потом это событие дальше проталкивается?
Или сначала отлавливается событие, потом ставится фокус и потом это событие дальше проталкивается?да, так.
ловится событие, в textarea вставляется нужный текст и выделяется, событие проталкивается дальше
Спасибо, элегантное решение,попробую реализовать. Жаль только, что скопировать можно будет только по hot key
никто не мешает отлавливать нажатие правой кнопки мышки.
И...?
И...?и через context menu тоже будет работать
Там контекстное меню браузера не будет уместно, но идея та же.
Оставить комментарий
anton7805
Есть задача скопировать некий текст в буфер обмена на сайте.Раньше и на старых браузерах можно было сделать это при помощи javascript без заморочек.
Но в появлением IE 7,8 и FF 3.5 в целях безопасности возможность доступа js к буферу обмена стала запрещена (по крайней мере без хаков в конфигах браузеров, но всем пользователям то не объяснишь этого).
Сейчас используется способ, описанный здесь
но он имеет существенные недостатки:
Но я никак не могу понять, как механизм копирования в буфер реализован в google spreadsheets.
Там можно произвольную область ячеек скопировать в буфер без всякого флеша, причем во всех последних версиях браузеров.
Как они обходят безопасность?