2011-11-15 89 views
0

我试图使用消息传递将一些数据从localStorage传递到我的内容。一切似乎都正确,但数据没有被传递。我已经设置了控制台写入来查看消息传递是否被触及,而不是。这是我第一次使用JavaScript,因此语法可能是错误的。Chrome扩展消息通过localStorage传递,值未定义

这里都是我跟在extenstion工作文件:

My Code On Gist

+1

您的链接标题不注重细节。 *(我修改它以增加清晰度。)* – ChaosPandion

+0

修改后,希望有所帮助。 – Sterfry1988

回答

0

它看起来像您可能使用sendRequest,如果它是同步的。

function genericOnClick(info, tab) { 
    var sText = info.selectionText; 
    var daddr = sText.split(' ').join('+'); 

    chrome.extension.sendRequest(
    {method: "getLocalStorage", key: "saddr"}, 
    function(response) { 
     var saddr = response.data; 
     var homeTxt = "http://maps.google.com/maps?" + 
      "saddr=" + saddr.split(' ').join('+') + "&daddr="; 
     var url = homeTxt + daddr; 
     chrome.tabs.create({url:url}); 
     console.log("item " + info.menuItemId + " was clicked"); 
     console.log("info: " + JSON.stringify(info)); 
     console.log("tab: " + JSON.stringify(tab)); 
    } 
); 
} 
+0

我了解http://code.google.com/chrome/extensions/messaging.html上的解释的方式是,我可以向background.html发送请求,并通过回复发送background.html回复。这就是为什么我很困惑,为什么它不工作。 – Sterfry1988

+0

我继续并修改了我的脚本。你可以在这里看到修改后的版本:https://gist.github.com/1369092。运行脚本时,消息传递中不会发生任何事情。控制台仅显示“鼠标点击”操作。有什么想法吗? – Sterfry1988

+0

@ Sterfry1988,如果您在background.html的第3行之前登录会发生什么?你收到*任何*吗? – strager

相关问题