0

ユーザーが popup.html に入力したレートを popup.js 経由で 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 was received のようなエラーを表示して動作していません。

4

0 に答える 0