Проблема с ZeroClipboard - PullRequest
       18

Проблема с ZeroClipboard

0 голосов
/ 13 мая 2010

Я пытаюсь использовать Zeroclipboard , чтобы скопировать материал в буфер обмена, но, похоже, он не работает. Мой код:

HTML:

<textarea name="texter" id="texter"></textarea>
<input type="button" value="Copy to clipboard" id="copy-button" />

Javascript:

<script type="text/javascript">
jQuery(document).ready(function(){

  var clip = new ZeroClipboard.Client();
  clip.setText('');  

   jQuery('#copy-button').click(function(){
  clip.setText(jQuery('#texter').val());
 }


});
</script>

Что с этим не так? Thansk!

Ответы [ 2 ]

4 голосов
/ 13 мая 2010

Несколько вещей.

Во-первых, ваши скобки немного сняты. Должно быть:

jQuery(document).ready(function(){

  var clip = new ZeroClipboard.Client();
  clip.setText('');  

   jQuery('#copy-button').click(function(){
  clip.setText(jQuery('#texter').val());
 });
});

Но это не решит твою проблему.

См. Инструкции ZeroClipBoard

вам нужно «склеить» или связать флэш-фильм с элементом dom на странице. Здесь скопированный текст будет сохранен. Тогда вы не можете использовать jQuery для события click (или, если можете, я неправильно понимаю документацию), но вы можете зарегистрировать событие mousedown для своей кнопки и связать его с клипом.

Применение этого к вашему коду.

    <script type="text/javascript">
        $(document).ready(function () {
            var clip = new ZeroClipboard.Client();

            clip.setText(''); // will be set later on mouseDown

            clip.addEventListener('mouseDown', function (client) {
                // set text to copy here
                clip.setText(jQuery('#texter').val());

                // alert("mouse down"); 
            });

            clip.glue('copy-button');
        });
</script>

Это должно сработать.

Вы можете использовать этот пример полностью без jQuery, но иметь его в готовом документе - хорошее компактное место, чтобы убедиться, что он выполняется только после того, как DOM будет готов. А также использование jQuery вместо getElementById.

Надеюсь, это поможет.

0 голосов
/ 23 января 2013
<!-- <script type="text/javascript" src="http://davidwalsh.name/demo/ZeroClipboard.js"></script> -->
    function copyText(fieldName,buttonName){
        var fieldNameTemp =fieldName;
        var buttonNameTemp =buttonName;
        var val = "";
        try{
            val = navigator.userAgent.toLowerCase();
        }catch(e){}
        var swfurl = "js/ZeroClipboard.swf";
        setTimeout(function () {
            ZeroClipboard.setMoviePath(swfurl);
            var clip = new ZeroClipboard.Client();
            clip.addEventListener('mousedown', function () {
                clip.setText(document.getElementById(fieldNameTemp).value);
            });
            clip.addEventListener('complete', function (client, text) {
                try{
                    if(val.indexOf("opera") > -1 || val.indexOf("msie") > -1 || val.indexOf("safari") > -1 || val.indexOf("chrome") > -1){
                        alert('Your text has been copied');
                    }
                }catch(e){
                    alert('Please alert: not use on fireFox');
                }
            });
            clip.glue(buttonNameTemp);
        }, 2000);
    }
...