2011-06-07 53 views
1

我在开发一个扩展,我不想使用选项页面。我使用浏览器操作(图标显示在右上角),并通过该页面进行了一些首选项,并将它们存储在localStorage中。从弹出页面到内容脚本的通信页面

但是,我的内容脚本需要读取localStorage,但我知道它无法访问它。我看着消息传递,但无法完成我想要的。

这里是我曾尝试:

popup.js

$(document).ready(function(){ 
    chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { 
     if (request.method == "getList") 
      sendResponse({status: localStorage['list']}); 
     else 
      sendResponse({}); // snub them. 
     }); 
}); 

content.js

$(document).ready(function(){ 
    var p; 
    chrome.extension.sendRequest({method: "getList"}, function(response) { 
     p = response.status; 
     alert(response.status); 
    }); 
}); 

回答

5

弹出的短暂意味着代码只活了弹出窗口打开的时间。这意味着你的听众会丢失。

将您的听众代码从popup.html移动到background page,那么这应该可以正常工作。

+2

我注意到了区别,谢谢。我通过popup - > background-> localStorage-> contentScript – Mustafa 2011-06-30 08:01:08

+0

建立了连接您可以通过后台脚本跟踪存在于默认弹出窗口中的按钮的onclick事件吗? – user146303 2016-06-21 15:56:25

相关问题