我正在尝试通过 popup.js 将用户在 popup.html 中输入的速率发送到 event.js 但我不知道为什么它不起作用我试图在 event.js 中添加警报以查看速率是否来自 popup.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});
});
我只是想根据用户更改语音的速率,但它无法显示诸如 Unchecked runtime.lastError: The message port closed before a response 之类的错误。