2011-08-03 13 views
1

Chrome拡張機能でコピー/ペーストコードが機能しないため、 クリップボードを使用してデータをコピー&ペーストするChrome拡張機能を作成する必要があります。Chrome拡張機能でコピー/貼り付けが行われない

次のコードをBackgroung.htmlページに書きますが、動作しません。

function buttonClick(){ 

       document.getElementById('initialText').select(); 


     chrome.experimental.clipboard.executeCopy(1, function() { 
      alert("Copy"); 
      document.getElementById('nameText').focus(); 


      chrome.experimental.clipboard.executePaste(1, function() { 
       alert("Paste"); 
      }); 
     }); 
     } 

答えて

5

「実験的」権限をマニフェストに追加しましたか?official documentationに記載されている最新のdev build of Chromeを使用していますか?

それ以外の場合は、実験的なAPIを使用していないため、プロダクションでは使用できないため、何が役立つか分かりません。試験的なAPIを使用せずにコピーするための回避策がありますが(入力フィールドとdocument.execCommandを使用しています)、それを使わずに貼り付ける方法はわかりません。

EDIT:

私はちょうどexperimental.clipboardが長くexperimental API pageに上場されていないことに気付きました。この名前空間は、実験的なAPIを使用しているときに起こり得るように廃止/放棄されている可能性があります。このための簡単なテストは挿入されます。

console.log(typeof chrome.experimental.clipboard); 
console.log(typeof chrome.experimental.clipboard.executeCopy); 
console.log(typeof chrome.experimental.clipboard.executePaste); 

バックグラウンドページ用に次のコンソールを出力する必要があります。

> object 
> function 
> function 
8

クロム13以降、クリップボードへのアクセスはno longer experimentalです。

コマンドは現在document.execCommand('paste'),document.execCommand('copy')およびdocument.execCommand('cut')です。

ただし、manifest"clipboardRead"および"clipboardWrite"に権限を追加する必要があります。

上記の実装を試してみてください。

+0

ニース、私はこれを知らなかった。また、 'document.execCommand()'はバックグラウンドページでのみ利用可能です。 – serg

+0

私は[extension](https://chrome.google.com/webstore/detail/dcjnfaoifoefmnbhhlbppaebgnccfddf)のために 'document.execCommand( 'copy')'を長い間使用してきました。私の背景ページ)。今私は新しい許可を追加する必要があるのだろうかと思います。これらの変更はいつ行われますか?私はChrome 13を使用していますが、私の拡張機能は引き続き追加の権限なしで動作します。 – Alasdair

+0

拡張機能にこれらを追加しましたが、[拡張機能の詳細ページ](https://chrome.google.com/webstore/detail/dcjnfaoifoefmnbhhlbppaebgnccfddf)に追加のアクセス権は表示されませんが、新しい「データをコピー&ペーストする」アクセスを承認するまで更新されました。 – Alasdair