Chrome拡張機能でpopup.jsからbackground.jsにメッセージを送信(および応答を取得)する適切な方法は何ですか? 私が試したすべての方法は、次のようなエラーになります。
「ポート: 接続を確立できませんでした。受信側が存在しません。」
port.postMessage() で chrome.extension.connect() よりも chrome.extension.sendMessage() を使用したいのですが、どちらの方法も機能していないようです。
私がやろうとしているのは、popup.html のボタンを配線して、popup.js の javascript を呼び出すことです。この javascript は、topMost であった currentTab() に関する情報を取得するために background.js を呼び出します (つまり、取得するpopup.html に表示する現在の URL 文字列)
現在、popup.js(ボタンのアクションに接続されています)に次のものがあります。
function getURL()
{
chrome.extension.sendMessage({greeting: "GetURL"},
function(response) { tabURL = response.navURL });
$("#tabURL").text(tabURL);
}
background.jsには次のものがあります。
chrome.extension.onMessage.addListener( function(request,sender,sendResponse)
{
if( request.greeting == "GetURL" )
{
var tabURL = "Not set yet";
chrome.tabs.getCurrent(function(tab){
tabURL = tab.url;
});
sendResponse( {navURL:tabURL} );
}
}
何か案は?