3

Google から jquery または javascript を使用してテキストをクリップボードにコピーする方法。私はそこで知っている

zeroclipboard という名前のプラグインです http://code.google.com/p/zeroclipboard/でこれを行うことができます

クロスブラウザ。指示リンクhttp://code.google.com/p/zeroclipboard/wiki/Instructions

しかし、私が自分のサイトでテストしたとき。オプションでテキストをコピーするように設定しました。うまくいきません。

私のテストリンクはhttp://xanlz.com/copy/1.htmlです

常にすべての値をコピーします。私もいくつかのチェックボックスをオフにします。値が変更されていない可能性があります。しかしalter()、変数の場合、値は問題ありません。それを修正する方法は?ありがとうございました。

チェックボックスの値をコピーできるようにしたい。ボックスがチェックされていない場合、その値をコピーしないでください。

4

2 に答える 2

1

編集 :

これを理解するのにしばらく時間がかかりました(.swfへの正しい参照がありませんでした)が、ここに完全な動作例があります(IE 8およびFirefox 4でテスト済み)

<html>
  <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>
    <script type="text/javascript" src="http://zeroclipboard.googlecode.com/svn/trunk/ZeroClipboard.js" ></script>
    <script type="text/javascript" >
        $(document).ready(function(){
            var checkall = $('#checkall');
            var boxes = $('input[type="checkbox"]').not(checkall);
            checkall.click(function () {
                boxes.attr('checked', this.checked);
            });
            boxes.change(function() {
                checkall[0].checked = this.checked && boxes.filter(':checked').length === boxes.length;
            });

            ZeroClipboard.setMoviePath('http://zeroclipboard.googlecode.com/svn-history/r10/trunk/ZeroClipboard.swf');
            var clip = new ZeroClipboard.Client();

            clip.glue("copyvalue");
            clip.addEventListener( 'onMouseOver', function(){
                var text = ' '; //Make this a space since we can't copy nothing...
                $('input.forminput:checked').each(function() {
                    text += $(this).val() + "\n";
                });
                clip.setText(text);
            });
        }) ;
    </script>
  </head>
  <body>
    <input class="forminput" type="checkbox" value="test one" checked="checked" name="VD1">
    <br>
    <input class="forminput" type="checkbox" value="test two" checked="checked" name="VD2">
    <br>
    <input class="forminput" type="checkbox" value="test three" checked="checked" name="VD3">
    <br>
    <input class="forminput" type="checkbox" value="test four" checked="checked" name="VD4">
    <br>
    <input class="forminput" type="checkbox" value="test five" checked="checked" name="VD5">
    <br>
    <input id="checkall" type="checkbox" checked="checked" name="checkall">
    <input id="copyvalue" class="button" type="button" value="copy test">
  </body>
</html>   

オリジナル:

ボタンのクリック イベントがありません。

次のようなものを追加する必要があります。

    var clip = new ZeroClipboard.Client();
    $("#copyvalue").click(function(){
        var text = '';
        $('input.forminput:checked').each(function() {
            text += $(this).val() + "\n";
        });
        //alert(text);
        clip.setText(text);
    });
于 2011-06-16T14:56:31.253 に答える
0

フラッシュを使用したくない(または許可されていない)場合(私は個人的にはそうしません)、次の命令で事前に選択されたテキスト(またはシリアル化されたデータ)を使用してテキスト領域を作成する方がよいと思います。ユーザーがデータをコピーして後で貼り付ける。

オペレーティングシステムをスニッフィングし、コピーアンドペーストの方法についてさまざまな指示を与えることで、指示をよりネイティブに感じさせることができます(たとえば、Windows/Linuxの場合はctrl+c、Macの場合は⌘-C)。

たぶんそれほどセクシーではありませんが、はるかに確実です...

于 2011-06-17T14:16:53.583 に答える