[JS] HTML в буфер
ответ: ты не должен этого хотеть.
скоро уже будут темы "а как сделать такой Javascript, чтобы он установил и запустил Photoshop, поменял местами диски C и D и чтобы системный блок прыгал, скакал и кукарекал?"
1. Как в этом IE осуществить такое: т.е. не просто текст запихать буфер, а текст с картинкой?
2. Почему я должен хотеть "в один клик" "отправить эту ссылку другу по e-mail" (это не только возможно, но и достаточно распространено) и не хотеть в один клик скопировать эту же ссылку в буфер обмена, чтобы отправить ее по аське?
1. Как в этом IE осуществить такое: т.е. не просто текст запихать буфер, а текст с картинкой?Не знаю. Я не изучаю магические способности отдельно взятых браузеров, мне интересны стандартные (и стандартные де-факто) возможности технологий.
2. Почему я должен хотеть "в один клик" "отправить эту ссылку другу по e-mail" (это не только возможно, но и достаточно распространено) и не хотеть в один клик скопировать эту же ссылку в буфер обмена, чтобы отправить ее по аське?"Отправить ссылку другу" бывает двух типов: когда отправляется "с сайта" — тогда это нормально, потому что не от твоего имени, а от имени админа сайта письмо посылается. А когда отправляется из твоей почтовой программы — ты подтверждаешь посылку письма из неё же.
Сразу "послать другу по ICQ" нельзя, потому что ICQ появилась намного позже e-mail (и интерната, AFAIK) и до сих пор не является даже де-факто стандартом (неизвестно, ещё, кто выживет: Yahoo!, Jabber или Mail.ru-агент). Поэтому для почты придумали URI-схему "mailto:", а для ICQ — вроде-бы нет.
А вот почему нельзя, чтобы сайт без моего ведома клал мне что-то в буфер обмена — это, я надеялся, ясно. А если у меня в этом буфере лежало что-то ценное? Оно ж затрётся. Или наоборот, я собирался содержимое буфера скопировать в командную строку. А сайт мне туда какую-нибудь вредоносную команду напишет.
Интеграцией сайта с ОС и другими программами должен заниматься браузер, а не Javascript. В той же Opera не составит труда (займёт минут 10) добавить в контекстное меню для ссылки пункт "послать по аське", если ICQ-клиент позволяет взаимодействовать с собой. А скопировать адрес ссылки — это 2 клика, это можно во всех известных мне графических браузеров сделать.
А вот почему нельзя, чтобы сайт без моего ведома клал мне что-то в буфер обмена — это, я надеялся, ясно. А если у меня в этом буфере лежало что-то ценное? Оно ж затрётся. Или наоборот, я собирался содержимое буфера скопировать в командную строку. А сайт мне туда какую-нибудь вредоносную команду напишет.Это хороший и очевидный аргумент, думаю, автор треда и без тебя до него додумался.
Но у него почему-то вопрос, как положить в буфер обмена именно html-код, потому что класть туда просто текст он уже умеет, есть такая функция.
Какие доводы за то, чтобы не было доступа к буферу обмена - понятно. А какие доводы за то, чтобы нельзя было туда положить что-то сложнее чистого текста (а сам текст - можно было бы)?
2. Мдя, вот привел аську просто как пример и получил в ответ аж целый исторический трактат... Тем не менее, возвращаясь к вопросу, установив в политиках безопасности, что данному конкретному сайту или даже странице по данному конкретному вопросу я доверяю, я вполне могу продолжать хотеть вышеописанного. Этот вопрос предлагаю не развивать, т.к. уже понятно, что соответствующего функционала вроде как и нет, а я тут говорю о том, что "ты не должен этого хотеть", а так же последующие аналогии - это было совсем не в тему.
Оставить комментарий
feliks28
В wysiwyg формах (наверняка не раз видели на разных форумах) можно копировать в буфер и вставлять из него как текст, так и картинки. Насколько я понимаю, то в буфер копируется html. А можно ли получить в буфере точно то же самое, но не через ctrl-c, а клиентским скриптом на странице?Погуглил, но нашел только что в JS в clipboardData.setData поддерживается только Text и URL, так что вроде как так сделать и нельзя.
Опыта создания страниц не хватает, чтобы нагуглить не только решение, но и то, что требуемое не получить никаким другим способом.
В принципе, использоваться страничка будет узким кругом людей и у всех винда, так что и vbs покатит и другой скриптовый язык на стороне клиента (я-то только про js и vbs знаю но вроде как в vbs точно такой же clipboardData.setData используется.
Так можно ли скриптово (скрипт на странице) разместить html в буфере? Или увы?