Автоматическое копирование в клипборд onfocus
У меня есть текстовая область, которая включает в себя информацию. Он имеет атрибут onfocus, который автоматически выделяет весь текст внутри него (onfocus="this.select();). Я хочу, чтобы, когда я фокусируюсь на текстовой области, весь выделенный текст автоматически копировался в буфер обмена, поэтому я могу легко вставить это где угодно без необходимости щелкнуть правой кнопкой мыши, чтобы скопировать или нажать CTRL + C. Как это будет сделано?
4 ответа
Из соображений безопасности JavaScript не может получить доступ к буферу обмена. Если вы действительно хотите это сделать, вы должны использовать flash (flash может записывать в буфер обмена, но не читать). Тем не менее, вам нужно щелкнуть внутри flash, чтобы записать в буфер обмена (но это можно смоделировать).
Вы можете увидеть, как это делается в Pastebin (Копировать в буфер обмена).
Если вы действительно хотите это сделать, я рекомендую вам использовать Zero Clipboard.
Обратите внимание, что ваш реальный подход используется Google URL Shortener (попробуйте сократить URL-адрес).
Расскажите нам свое решение.
Как правило, движок JavaScript браузера не имеет доступа к каким-либо функциям буфера обмена системы по соображениям безопасности, поэтому, если вы запрашиваете переносимый ответ с чистым JavaScript-кодом, то, боюсь, вы не сможете этого сделать.
(Если вам нужно, вы можете искать по сайту "javascript" и "clipboard", я думаю, что есть некоторые подходы, использующие Flash. Но лучше вообще не делать этого.)
Один из API в семействе API-интерфейсов HTML5 собирается решить вашу проблему. Он называется "API-интерфейс буфера обмена и события", и он позволяет выполнять общие операции с буфером обмена (вырезать, копировать, вставить) для веб-приложений через Javascript. В настоящее время (по состоянию на июль 2011 года) рабочий проект. Вы можете найти спецификацию здесь:
http://www.w3.org/TR/clipboard-apis/
Что касается реализаций, ну, я пока не могу найти их. Это займет время...
Или зайдите в about:config и найдите этот элемент в списке: "clipboard.autocopy = false" измените его на true!: D