Вёрстка « Как сделать форму с текстом который бы копировался одним кликом
Собственно вопрос: на некоторых сайтах где даёются короткие ссылки или просто ссылки, например на ютубе или спидтесте есть такая форма в которую нажимаешь и текст сразу копируется.
С помощью чего сделана данная функция?
С помощью чего сделана данная функция?
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 }
Ну или через флешку, как написал коллега выше.
Это можно сделать на флеше (и никак иначе):
- swfobject.js — это для флеша
- 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('А вот тут откуда-то берем текст и вставляем сюда — этот текст попадет в буфер обмена.');
});