Как вставить на клик? Это работает в Google Docs
Я хочу иметь возможность инициировать настоящее событие вставки, когда пользователь нажимает. Я могу понять, что это может быть проблемой безопасности, потому что если бы любая веб-страница имела доступ к буферу обмена пользователей, это было бы плохо. Поэтому я подумал, что все браузеры запрещают доступ к данным буфера обмена.
Но, например, в Google Docs (в словесном приложении) я могу вставить из пользовательского контекстного меню (щелчок правой кнопкой мыши по HTML-элементу, претендующему на роль контекстного меню), даже если данные буфера обмена были скопированы в буфер обмена в другом приложение, как Microsoft Paint. Это работает в браузере Google Chrome, который является браузером моего интереса.
Я думал, что они делают это с помощью вспышки, но этоеще работает даже если я полностью отключить вспышку в Chrome. Былвопрос об этом уже есть, но упомянутый там ответ не верный. Другой ответ на этот вопрос предполагает, что Google использует расширение Chrome для этого, но этоеще работает даже если я отключу все расширения в Chrome.
Как воспроизвести в окнах:
отключить вспышку в chrome, отключить все расширениязапустить сноваперейдите в Google Docs и откройте новый пустой документ записи (Документы, а не электронные таблицы)запустить приложение Microsoft Paint в WindowsНарисуйте что-нибудь в Microsoft Paint, нажмите Ctrl + A, чтобы выделить все, Ctrl + C, чтобы скопироватьпереключитесь обратно в chrome на пустую страницу документов и щелкните правой кнопкой мыши пустую страницувыберите Вставить из искусственного контекстного меню (обратите внимание, что контекстное меню не является родным меню из окон, но оно приходит с html-страницы документации Google)Вы увидите, что изображение из буфера обмена было вставлено в документ документа (!)Как они это делают?Я знаю, как получить доступ к данным буфера обмена, если пользователь нажимает Ctrl + V на моей веб-странице, потому что это вызывает событие Вставить в текущем окне. Но как мнеполучить доступ к данным буфера обмена или жеинициировать вставку актуальных данных буфера обмена (например, растровое изображение, скопированное в mspaint) в javascript (или с использованием jquery), в то время как пользователь просто нажимает кнопку или div?