Я пытаюсь отправить оценку, введенную пользователем в popup.html, на event.js через popup.js, но я не знаю, почему она не работает. Я попытался добавить предупреждение в event.js, чтобы узнать, идет ли оценка из всплывающего окна. .js и оповещение работают правильно, но я не могу выполнить желаемую работу
event.js
var item={
"id":"selected text",
"title":"Speak",
"contexts":["selection"]
};
var rate; chrome.runtime.onMessage.addListener(function(request,sender,sendResponse){
if(request.todo=="changerate")
{
rate=request.rate;
}
});
chrome.contextMenus.create(item);
chrome.contextMenus.onClicked.addListener(function(clickData){
alert(rate);
if(clickData.menuItemId=='selected text' &&
clickData.selectionText){
chrome.tts.speak(clickData.selectionText,{'lang':'en-
US','rate':parseInt(rate)});
}
})
/////////////////////////////////////////
popup.js
$('#submit').click(function(){
var rate=$('#rate').val();
chrome.runtime.sendMessage({todo:"changerate",rate:rate});
});
Я просто пытаюсь изменить уровень разговорной речи в зависимости от пользователя, но он не работает
показывая ошибки как
Не проверено runtime.lastError: Порт сообщения закрыт до получения ответа.