Вёрстка « Как сделать форму с текстом который бы копировался одним кликом

Собственно вопрос: на некоторых сайтах где даёются короткие ссылки или просто ссылки, например на ютубе или спидтесте есть такая форма в которую нажимаешь и текст сразу копируется.
С помощью чего сделана данная функция?

1 ответов


Для IE и FF вот такая функция делает то, что Вы хотите.


function copy_clip(maintext)
03  {
04   maintext = String(maintext)
05   if (window.clipboardData)
06     window.clipboardData.setData("Text", maintext);
07   else if (window.netscape)
08    {
09     try
10      {
11       netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
12       var gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].
13       getService(Components.interfaces.nsIClipboardHelper);
14       gClipboardHelper.copyString(maintext);
15      }
16     catch(err)
17      {
18       alert ("Clipboard copying error: " + err); return false
19      }
20    }
21   return true;
22  }
 
Ну или через флешку, как написал коллега выше.

Это можно сделать на флеше (и никак иначе):

  1. swfobject.js — это для флеша
  2. zeroclipboard-1.0.7.js — а это от Гугла сама библиотека для копированя
Всё очень легко:

/* Для каждой кнопочки (ну или ссылки или что там у вас) нужно инициализировать ZeroClipboard и вешать события */
$('button').each(function() {
    var button = $(this);
    var clipboard = new ZeroClipboard.Client();
/*
button[0] — это сама кнопочка (нативный Яваскрипт-объект),
button.parent()[0] — это родительский элемент кнопочки (тоже нужен нативный Яваскрипт-объект).
Потом сюда вставится невидимый флешик (с размерами вашей кнопочки) на который пользователь
будет кликать, но визуально будет кликаться именно кнопочка
*/

        clipboard.glue(button[0], button.parent()[0]);
        clipboard.setText('А вот тут откуда-то берем текст и вставляем сюда — этот текст попадет в буфер обмена.');
});