2012-07-03 6 views
0

Итак, я делаю это одно хромированное расширение, которое должно связываться с другим расширением, и после много противоречивой информации я не получил никаких результатов, вот код, который я использую до сих пор:Как отправить сообщение от хромированного расширения другому?

Отправка часть в одном из HTML внутренней линии (options.html)

console.log("sending message..."); 
chrome.extension.sendRequest(receivingExtensionID, {txt: "sometext"}, function (res){ 
     console.log("response received"); 
     console.log("res: " + res); 
     try{ 
     console.log("res.txt: " + res.txt); 
     }catch(e){ 
     console.log("ERROR: cannot print res.txt because res is undefined."); 
     } 
}); 

console.log("message sent.") 

Приемная часть в background.html другого внутреннего абонента

chrome.extension.onRequestExternal.addListener(function(request, sender, sendResponse) { 
    sendResponse({txt: "someothertext"}); 
}); 

Я получаю следующее сообщение об ошибке:

Port error: Could not establish connection. Receiving end does not exist. 

Я не знаю, что еще сказать, кроме подробностей-вещь говорит об этом, когда вы нажимаете на ошибки в отладчике:

chromeHidden.Port.dispatchOnDisconnect 

Я попытался один и тот же код с SendMessage и onMessageExternal и Я получаю тот же результат

Пожалуйста, помогите

+0

Вы загрузили второе расширение перед первым? –

+0

Да, я не могу в это поверить! Я загрузил их в обратном порядке, и это сработало мгновенно! Благодарю вас! – DeadlyBacon

+0

Должен ли я отправлять ответ, чтобы вы могли его принять или вы хотите удалить (казалось бы, тривиальный) вопрос? –

ответ

0

первое расширение (который посылает сообщение) должен быть загружен после второго расширения (который получает сообщение). Это очевидно: когда они загружены в обратном порядке, отправитель отправляет сообщение до того, как был создан приемник.

Смежные вопросы