Время для прочтения: 0 мин. 45 сек.

Копирование в буфер обмена

На многих форумах, блогах, гостевых, чатах есть ссылка скопировать что-то в буфер обмена пользователя. Такую кнопку обычно помещают возле "кодов для вставки" видео, аудио или картинок. Чтобы людям было проще копировать.

Во всех браузер, кроме IE, из-за политики безопасности такое реализовать средствами JavaScript вообще нельзя, хотя в инете и полно всяческих кодов, которые на деле у вас работать не будут.

В IE данный подход реализуется так



<script>
	window.clipboardData.setData('text', 'Этот текст будет в буфере');
</script>

Как же тогда быть с остальными браузерами? Тут на помощь приходит Flash. Динамически создаём ролик, и в его параметры добавляем текст, который нужно поместить в буфер.



<script>
	str = '<embed src="copy.swf" FlashVars="clipboard='+encodeURIComponent(t)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
	element.innerHTML = str;
</script>

Ролик при создании сразу копирует текст из параметра clipboard пользователю в буфер. До недавнего времени все работало на ура, но с выходом Flash 10 всё радикально изменилось. Теперь чтобы активировать Flash на него нужно кликнуть.

Поэтому самым простым решением было создать flash-кнопку и поступить также как в предыдущем варианте

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>