Zeroclipboard, запускаемый любым элементом с class = copy

Я просматривал этот сайт вместе со многими другими и нигде не вижу ответа.

В настоящее время у меня есть сайт с несколькими кнопками и панелью предварительного просмотра. Текст, отображаемый на панели предварительного просмотра, различается в зависимости от кнопки, на которую в данный момент наведен курсор.

<body>
<div="preview_pane"> <!--ALL TEXT IS SHOWN HERE --> </div>

<div id="button_group">
   <div class="copy_me" id="stock1"></div> <!--THIS SHOWS STOCK TEXT-->
   <div class="copy_me" id="stock2"></div> <!--COMPLETELY DIFFERENT TEXT-->
   <div class="copy_me" id="stock3"></div> <!--YET SOME OTHER DIFFERENT TEXT-->
   <div class="copy_me" id="stock4"></div> <!--OTHER COMPLETELY DIFFERENT TEXT-->
</div>

</body>

Я хочу, чтобы zeroclipboard создавал наложение flash на любой кнопке с классом copy_me. Все эти кнопки должны копировать текст, отображаемый на панели предварительного просмотра.

Таким образом, когда пользователь наводит курсор на кнопку, текст в области предварительного просмотра изменится, а затем, когда они нажмут, текст в области предварительного просмотра будет скопирован в буфер обмена пользователя.

Я не могу вручную добавить скрипт к каждой кнопке, так как будет более 50 стандартных текстовых кнопок.

У меня нет опыта работы с flash или javascript (только пробовал jQuery), так что это что-то совершенно новое для меня.

Любая помощь будет оценена.


person Aero    schedule 08.05.2013    source источник


Ответы (3)


ответил на аналогичный вопрос на https://stackoverflow.com/a/26200988/3471658

Попробуйте использовать http://www.steamdev.com/zclip/, он позволяет получить прямой доступ к jquery. и вы можете использовать свою собственную логику в операторе возврата.

include jquery.zclip.js скачать и сохранить ZeroClipboard.swf

Вот отрывок:

$(".class-to-copy").zclip({
    path: "assets/js/ZeroClipboard.swf",
    copy: function(){
        return $(this).attr("data-attribute-with-text-to-copy");
    }
});

Убедитесь, что вы изменили путь к файлу swf.

person tanwaniniranjan    schedule 05.10.2014

Я быстро просмотрел api-документацию для zeroclipboard, и я хочу использовать метод glue и передать массив узлов dom. В этом случае вам нужны все узлы с именем класса copy_me, поэтому:

var clip = new ZeroClipboard();
clip.glue(document.getElementsByClassName('copy_me'));
person Ryan Lynch    schedule 08.05.2013

Вы упомянули jQuery. Это должно облегчить вам задачу:

var client = new ZeroClipboard($('.copy_me'));

См .: https://github.com/zeroclipboard/zeroclipboard/blob/master/docs/instructions.md

См. Также: http://jsfiddle.net/rimian/45Nnv/

person Rimian    schedule 11.03.2014