2011-11-15 97 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

相關問題