2016-04-27 25 views
0

私はプライベートクロムエクステンションを構築しています。 私はpopup.htmlに2つのボタンがあります.1つはコピーで、もう1つはペーストです。Chrome拡張機能コピー&ペースト

ロジックはこのようなものです:他のウェブサイトとプレスペーストに

  1. ポップアップで押してコピーボタン、および
  2. 何らかの形でデータをコピーして移動し、他の形で

を注入だから私chrome.extension.sendMessageを使用してポップアップボタンをクリックしてメッセージを聞きます。chrome.extension.onMessage.addListenerここでは、何らかのアクションが何らかのスクリプトを実行するように切り替わります。

私は情報を得ることができます、私はそれを注入する方法を知っていますが、私は別のタブでそれを使用することができますので、私はそれを保存する場所を知っていません。

誰かに考えがありますか?

function dispatch(action) { 
    return function() { 
     chrome.extension.sendMessage({directive: action}, function(response) { 
      this.close(); 
     }); 
    } 
} 



document.addEventListener('DOMContentLoaded', function() { 

    copy = document.getElementById('copy'); 
    paste = document.getElementById('paste'); 

    copy.addEventListener('click', dispatch('COPY')); 
    paste.addEventListener('click', dispatch('PASTE')); 
}) 
+1

'chrome.extension。*'メッセージ機能は廃止予定です: 'chrome.runtime.sendMessage' /' onMessage'を使用してください。 – Xan

答えて

2

ローカルストレージを使用して必要な値を保存し、貼り付けてから再度削除することができます。

あなたは使用してローカルストレージに値を保存することができます

chrome.storage.local.set({ 'KEY': 'VALUE' }, function(){}); 

をそして、あなたが使用してストレージから取り出すことができます。

chrome.storage.local.get('KEY', function(items) { 
    //use the retrieved data with items.KEY 
}); 

そして、あなたは、次の行を追加する必要がありmanifest.json中:

"permissions": ["storage"] 

たとえば、私が使用しているキーが「SNT」の場合、私は次のように設定します:

chrome.storage.local.set({ 'SNT': 'VALUE' }, function(){}); 

そして、私はそれを使用して取得:

chrome.storage.local.get('SNT', function(items) { 
    $("#divID").text(items.SNT); 
}); 

をあなたが作業の例を見てwan't場合はthis GitHubのリポジトリを確認することができます。

+0

ありがとう、私はlocalStorageを使用することを考えていたが、タブのためだけだ、didintはchrome.storageについて知っている – Hiero

+0

@Hieroデバイス間で同期されるようにストレージを設定することもできます:) – rafaelcpalmeida

+0

なぜ私はコピーを取りますか? innerHTMLのようなエラーは未定義です。 – Hiero

関連する問題