2016-04-27 49 views
0

所以我正在構建一個私有擴展。 我有popup.html兩個按鈕,一個是複製,另一個是粘貼。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

我不知道爲什麼當我複製我recive一些像innerHTML這樣的錯誤是未定義的,發生在你之前? – Hiero