0

これは、クリップ コピーの更新されたコードです。

 <script src="jquery-1.8.0.min.js" type="text/javascript"></script>
 <script type="text/javascript" src="http://www.steamdev.com/zclip/js/jquery.zclip.min.js"></script>

本文セクション:

  <div>
    <input type="text" id="txtEmbedLink" />
    <button id="btnCopyClipboard">
        copy</button>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        $('#btnCopyClipboard').zclip({
            path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
            copy: $('#txtEmbedLink').val(),
            beforeCopy: function () {
                alert('before copy');
            },
            copy: function () {
                alert('copy');
                return $('#txtEmbedLink').val();
                            },
            afterCopy: function () {
                alert('after copy');
            }
        });
    });

問題は、ボタンをクリックしたときです。直前にコピーが正しく実行され、コピー後は何もありません(問題はコピー機能だと思います:コピーのアラートコマンドが正しく実行されます)

4

2 に答える 2

1

私はあなたのための解決策を見つけました.jsfiddleがローカルコードと異なるため、コードを変更してください

jsfiddle http://jsfiddle.net/sxeCM/101/に添付

主な問題は、Web で既に言及されている動的な値であり、ボタン クリックの代わりに DOM Ready に配置します。

$(document).ready(function () {
    $('#btnCopyClipboard').zclip({
        path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf', //this remain as the one you had
        copy:function(){return $('#txtEmbedLink').val();} //change this to be the clientid
    });
});

更新された回答:

これをチェックしてくださいhttp://jsfiddle.net/sxeCM/102/

  $(document).ready(function () {
        $('#btnCopyClipboard').zclip({
            path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
            copy:function(){return $('#txtEmbedLink').val();},
            beforeCopy: function () {
              console.log("test");
            },
            afterCopy: function () {
                alert('after copy');
            }
        });
    });

このjsfiddleでテストしたように、beforecopyのアラートが最終的にzclipがテキスト入力をコピーしなかった不明なグリッチを引き起こすことがわかりました。アラートを使用する代わりに、コピーが機能することを示すconsole.logに変更します。テストしたい場合は、アラートをconsole.log("before copy")?ところで置き換えてみませんか。パスは元のパスのままにする必要があります。サンプル パスは使用しないでください。

于 2014-08-29T02:27:55.243 に答える
0

あなたが解決するかどうかわかりませんが、私は長い間その理由を探していました。

私の問題は、アタッチ要素の準備ができていないことです。したがって、関数 " is(:visible) " は常に " false " であり、offsetWidthは常に 0 です。zclip attach.like に setTimeout を追加してみてください。

setTimeout(function(){
    $('attchElement').zclip({
        path: 'ZeroClipboard.swf',
        copy: $('textarea').val()
    });
},500);
于 2015-06-01T07:28:45.923 に答える