我使用下面的代碼來發送從內容腳本示例消息:谷歌瀏覽器擴展 - 無法從內容腳本傳遞消息彈出頁面中相同的擴展
function sendjsontrue()
{
var arrCars = new Array("Toyota", "Mercedes", "BMW");
jsonStr = JSON.stringify(arrCars);
chrome.extension.sendRequest({greeting: jsonStr}, function(response){
console.log(response.farewell);
});
console.log("Message with header=greeting has been sent...");
}
在我popup.html代碼處理由內容腳本發送的消息,被below--
<script>
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
else
sendResponse({notfarewell:"Not goodbye"}); .
});
</script>
,我得到的是below--
Port error: Could not establish connection. Receiving end does not exist.
chrome/EventBindings:184Error in event handler for 'undefined': TypeError: Cannot read property 'farewell' of undefined
at chrome-extension://nkmkgjckmjekpbghhildcfdlnbjeglkd/obtainformdata.js:81:25
at chrome/RendererExtensionBindings:238:13
at [object Object].dispatch (chrome/EventBindings:182:28)
at Object.<anonymous> (chrome/RendererExtensionBindings:134:27)
給出的錯誤給出
我做了什麼錯在這裏?
我記得消息被髮送到後臺,不會彈出。您應該能夠將消息從bg轉發到彈出窗口。 – mrtsherman