10

私は一日中これを機能させようとしていますが、できません...試しました:-フラッシュバージョン(少なくとも3つの異なるバージョン)-コンテンツスクリプトのdocument.execCommand( "copy")だけでなく、バ​​ックグラウンドページでも私はstackoverflowの多数のページをチェックしました...利用可能なすべてのソリューション。

誰かが実用的な例を持っていますか?

編集:

マニフェスト.json

{
    "name": "test",
    "manifest_version": 2,
    "version": "1.0",
    "description": "test",
    "content_scripts": [{
            "matches": ["https://somesite.com*"],
            "js": ["jquery.js", "script.js"],
            "run_at": "document_end",
            "css": ["style.css"]
    }],
    "permissions": [
            "clipboardWrite",
            "clipboardRead"
    ]
}

script.js

$(document).ready(function () {
    $('body').append('<textarea id="test"/>');
    var $test = $('#test');
    $test.text('some text which should appear in clipboard');
    $test.select();
    document.execCommand('copy');
    alert('copied!');
});

上記は機能しません。アラートが表示されます...

EDIT2:フラッシュバージョンでも試しましたが、その拡張機能はローカルホストで実行されるものであるため、おそらく機能しないと思います。

4

2 に答える 2

12

コピーが奇妙に機能します。コピーのイベント リスナーを登録する必要があります。これは、document.execCommand('copy').

これは、イベント ハンドラーの実際の例です。

document.addEventListener('copy', function(e) {
  var textToPutOnClipboard = "some text which should appear in clipboard";
  e.clipboardData.setData('text/plain', textToPutOnClipboard);
  e.preventDefault();
});
于 2015-07-14T14:24:05.227 に答える
6

manifest.json にコピーのアクセス許可があることを確認してください。

"permissions": [
  "clipboardWrite", // for copy and cut
  "clipboardRead", // for paste

],

そして、document.execCommand('copy')何かが選択されたら使用します

詳細はこちら

于 2012-11-12T18:40:38.360 に答える