2017-07-18 12 views
0

私が直面している問題はかなり面白いです。 chrome.tabs.queryコールバックのデータに到達しようとするまでは、私のバックグラウンドとポップアップの間の通信を設定しました。Chrome拡張機能のポップアップでタブが表示されない質問の回答

あなたは何が間違っていた可能性があることを教えてください。

background.js

chrome.extension.onMessage.addListener(
    function(request, sender, sendResponse) { 
    if (request.greeting === 'getTabs') { 
     chrome.tabs.query({},function(tabs){ 
     sendResponse(tabs); 
     }); 
    } 

    if (request.greeting === 'test') { 
     sendResponse('test-string'); 
    } 
}); 

popup.js

$(document).ready(function(){ 
    $('button').on('click', function(){ 
    chrome.extension.sendMessage({greeting: 'getTabs'}, function(response){ 
     console.log(response); 
    }); 
    chrome.extension.sendMessage({greeting: 'test'}, function(response){ 
     console.log(response); 
    }); 
    }); 

})。

私はbackground.jsの部分をデバッグしましたが、sendResponse(タブ)がコールバック関数にあっても、何らかの理由で応答として送信されませんでした。さらに、「apple」のような静的な文字列を設定すると、それも送信されません。

答えて

0

最終的に私の質問への答えが見つかりましたが、私はそれを理解できませんでしたが、なぜ問題を解決しましたか?

background.js

chrome.extension.onMessage.addListener(
    function(request, sender, sendResponse) { 
    if (request.greeting === 'getTabs') { 
     chrome.tabs.query({},function(tabs){ 
     sendResponse(tabs); 
     }); 
    } 

    if (request.greeting === 'test') { 
     sendResponse('test-string'); 
    } 
    return true; 
}); 

私はクロームmessaging.jsでポートがnullだった他、trueを返す必要がありました。

+2

[ドキュメントの機能](https://developer.chrome.com/extensions/runtime#event-onMessage)です。 – wOxxOm

関連する問題