8

Flash などを使用しないと (ブラウザで) テキストをコピーできないと聞きました。アンカーと JavaScript または jQuery を使用してテキストを選択する方法はありますか。

<p>Text to be copied</p>

<a>Copy Text Above</a>
4

4 に答える 4

28

新しいブラウザでは、これを実行して選択してコピーできます。これは純粋な Javascript ソリューションです。

function copy_text(element) {
    //Before we copy, we are going to select the text.
    var text = document.getElementById(element);
    var selection = window.getSelection();
    var range = document.createRange();
    range.selectNodeContents(text);
    selection.removeAllRanges();
    selection.addRange(range);
    //add to clipboard.
    document.execCommand('copy');
}

このコピー コマンドは、Safari を除く、すべての主要なブラウザー、Chrome、Firefox (Gecko)、Internet Explorer、および Opera で機能します。

編集: 将来の注意 - 上記は引き続き機能しますが、 Permissions APIへの移行と、次のようなClipboard インターフェイスの使用についての話がありますnavigator.clipboard.writeText('text')。この標準はまだ最終化されておらず、多くのブラウザーでサポートされていません。セキュリティがより懸念されるようになるにつれて、将来的にはこのようなことが予想されます。

于 2015-12-29T02:13:24.787 に答える
4

次の例の html があるとします。

<div class="announcementInfoText">
    <p class="copyToClipboard">
        <a id="selectAll">Select All Text</a>
    </p>
    <textarea ID="description" class="announcementTextArea">This is some sample text that I want to be select to copy to the clipboard</textarea>
</div>

次のjQueryを使用して、テキストエリア内のテキストを選択できます。

$("#selectAll").click(function () {
    $(this).parents(".announcementInfoText").children("textarea").select();
});

テキスト " This is some sample text that I want to be selected to copy to the clipboard " が選択されたので、Ctrl+C を押すだけでテキストがクリップボードにコピーされます。

于 2012-10-19T21:17:48.930 に答える
3

フラッシュ ベースのプラグインを実行しない最も簡単なソリューションは、次のようなものです。

$('a').click(function() {
    window.prompt('Press ctrl/cmd+c to copy text', $(this).prev('p').text());
});

http://jsfiddle.net/JFFvG/

于 2012-10-20T20:22:49.743 に答える