Копирование в буфер при нажатии на ссылку

Тема в разделе "JavaScript", создана пользователем acelotuse, 19 сен 2011.

Модераторы: ZiX
  1. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    День добрый.
    Искал в сети что-нибудь подходящее, но все кривое или громозкое.
    Вот например:

    Код:
    Копирование содержимого поля textarea кликом по кнопке.
     
    <html>
    <head>
    <title>Копирование содержимого поля textarea кликом по кнопке.</title>
    <SCRIPT language=javascript>
    function toBuf(name){
    if(document.selection.createRange().text!=""){
    name.focus();
    document.selection.createRange().duplicate().execCommand("Copy");
    }else{
    name.focus();name.createTextRange().execCommand("Copy");}}
    </SCRIPT>
    </head>
    <body>
    <form name=main>
    <textarea id=lat name=lat cols="40" rows="3">
    <a href="http://studia.scriptic.ru/">
    <img height="31" width="88" border="0" src="http://studia.scriptic.ru/banner/88/web-disain.gif" /></a></textarea><br />
    <INPUT title=copy onclick=toBuf(main.lat) type=button value="Копировать в буфер" />
    </form>
    </body>
    </html>
    Не совсем мне подходит.
    Я делаю панель для редакторов, и чтобы она удачно вписалась в дизайн, необходимо использование ссылок, а не кнопки input. Т.е. необходимо, чтобы при нажатии на ссылку (ссылка в виде изображения, которое указано через css), копировался определенный текст (с ББ-кодом и другими тегами).
    Возможно ли такое? Или я трачу время?.
    Заранее спасибо.
     
  2. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    В новых браузерах эту возможность отключили, т.к. считается
    уязвимостью, когда скрипт, может без действий пользователя
    обратиться в кеш (например при действии onload)

    Короче, не стоит с этим заморачиваться.
    Можно сделать по клику полное выделение.
     
  3. frantz1488

    frantz1488

    Регистр.:
    21 мар 2010
    Сообщения:
    162
    Симпатии:
    43
    http://code.google.com/p/zeroclipboard/

    Код по моей ссылке выше успешно использую во всех браузерах, сам когда-то долго искал, лучше варианта думаю не найдешь, так как дыры подобные в яваскриптах уже прикрыты во имя безопасности
     
    Последнее редактирование модератором: 17 дек 2013
    acelotuse нравится это.
  4. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    bork75,
    м-да, не обнадеживающая новость, конечно. выделение по клику я уже рассматривал, вернее, варианты, как его привязать. В общем, это мне не подходит, на крайняк можно весь код поставить в href и копировать этот код в буфер банальным "правой кнопкой мыши - копировать адрес ссылки". Эффект получается тот же. ))) но,... некрасиво это как то, все равно что топором ногти стричь.
    А вот по ссылке frantz1488 что-то интересное. Сейчас буду смотреть исходный код.
     
  5. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Ни фига себе они так извернулись, через Flash
    Нужно тестировать этот скрипт на браузере без установленного флешплеера.
     
  6. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    Да, через флеш. Но все равно, неплохо работает. Кстати, там есть очень прикольная вариация с jquery. Как раз самое то, что нужно было. Копирует по щелчку на тексте.
     
  7. BACZ

    BACZ

    Регистр.:
    18 июн 2008
    Сообщения:
    608
    Симпатии:
    381
    Кстати, мне вот эти две статьи помогли в свое время копировать в буфер с помощью JS.Но мне, правда, нужно было для локальных нужд и только под IE8- хотя кроссбраузерные решения там тоже предлагаются.

    http://www.deluxeblogtips.com/2010/06/javascript-copy-to-clipboard.html
    http://www.htmlgoodies.com/beyond/javascript/article.php/3458851/Click-Its-Copied.htm
     
  8. DIMITOS

    DIMITOS Создатель

    Регистр.:
    13 июн 2008
    Сообщения:
    14
    Симпатии:
    6
    Из за соображений безопасности это сделать на JavaScript очень проблематично и это будет костыль.
    первая ссылка на обсуждение даного вопроса на Гите, а вторая на мануал по Экшену
     
  9. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    360
    Симпатии:
    243
    Всё придумано "до нас". В работе: 2ip.ru открываешь и тыкаешь на IP-адрес.
     
  10. f0rsaken198

    f0rsaken198 Создатель

    Регистр.:
    19 янв 2009
    Сообщения:
    8
    Симпатии:
    1
    Самое лучшее и оптимальное решение:
    window.prompt ("Copy to clipboard: Ctrl+C, Enter", text);