2013-02-21 15 views
6

私が作成しているクロム拡張からクリップボラードにいくつかのデータを書きたいと思います。 マニフェストファイルでは、私はclipboardReadとclipboardWriteの両方に権限を与えました。なぜchrome拡張機能のコンテンツスクリプトでdocument.execCommand( "copy")が動作しないのですか?

私はhere

が見つかりましたが、それは動作しません。この機能を使用しています。 "document.execCommand( 'copy');"と思われる動作することはできません。

私はコンテンツスクリプトにこれらのコードをすべて書きます。

THX マニフェスト:

{ 
    "manifest_version":2, 

    "name":"easyCopy", 
    "description":"just a small toll", 
    "version":"1.0.0", 

    "permissions":[ 
     "clipboardWrite", "http://*/*", "clipboardRead" 
    ], 

    "content_scripts":[ 
     { 
      "matches":["http://*/*"], 
      "js":["jquery-1.9.1.min.js", "main_feature.js"] 
     } 
    ], 

    "background":{ 
     "persistent":false, 
     "page":"background.html" 
    } 
} 

main_feature.js:

copyOrderId(); 
function copyOrderId() { 
    $(".order-num").click(function() { 
     var curOrderNum = $(this).text(); 
     copyTextToClipboard(curOrderNum); 
//  chrome.extension.sendMessage({method:"copy", content:curOrderNum}, function (response) { 
//   clog(response); 
//  }); 
    }); 


} 

function copyTextToClipboard(text) { 
    var copyFrom = $('<textarea/>'); 
    copyFrom.text(text); 
    $('body').append(copyFrom); 
    copyFrom.select(); 
    document.execCommand('copy', true); 
    copyFrom.remove(); 

} 
function clog(message) { 
    console.log(message); 
} 

background.htmlは、基本的なHTML本体とちょうど空白のページです。

+1

マニフェストなどの完全な関連コードを共有する – Sudarshan

+0

thx、私は自分の質問を編集し、すべてを共有しました –

答えて

8

おかげでみんな、私はこれを使用して終了:

document.execCommandは、コンテンツスクリプト内で作業することはできません。 代わりに、私はバックグラウンドページにデータを送信し、次に "copyTextToClipboard"関数を実行します。

JavaScriptをbackground.htmlと混合するのではなく、単一の.jsファイルに配置する必要があることに注意してください。

さらに、テキストエリアにはidまたはclassプロパティが必要です。

+0

あなたはさらに明確にすることができますか?コンテンツスクリプトベースのjsファイルに隠しフィールドを定義すると、その目的のためにバックグラウンドでその値にアクセスできますか? – Volatil3

+0

@ Volatil3:申し訳ありませんが、あなたのコメントは表示されませんでした。背景に隠れたフィールドを定義してからコピーすることができます。あなたがコンテンツスクリプトに何かをコピーしたいのであれば、chromeのMessagePassing APIを使ってバックグラウンドにデータを送る必要があります。 –

+0

このバグはChrome 39で修正されました - https://code.google.com/p/chromium/issues/detail?id=395376 –

関連する問題