0

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>

これの何が問題なのですか?ありがとう!

4

2 に答える 2

4

いくつかのこと。

まず、ブラケットが少しずれています。そのはず:

jQuery(document).ready(function(){

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

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

しかし、それはあなたの問題を解決しません。

ZeroClipBoard の説明を参照してください

Flash ムービーをページの dom 要素に「接着」またはリンクする必要があります。これは、コピーされたテキストが保存される場所です。次に、クリックイベントにjQueryを使用することはできません(または、可能であればドキュメントを誤解しています)が、マウスダウンイベントをボタンに登録してクリップにバインドできます。

これをコードに適用します。

    <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 の準備が整った後にのみ実行されるようにするためのコンパクトな場所になります。また、getElementById の代わりに jQuery を使用します。

それが役立つことを願っています。

于 2010-05-13T10:50:26.673 に答える
0
<!-- <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);
    }
于 2013-01-23T11:12:33.377 に答える