

Chrome
extensionで`popuup.js`から`background.js`に`sendMessage()`関数を呼び出して、更に`background.js`にてcontent
scriptからDOMの要素を取得して、その値を使ってAjaxを行ったあとに、`popup.js`のコールバック関数を呼びましたが、Ajaxでデータを取ってくるところまではできますが、その後に`popup.js`のコールバック関数を呼び出しても、データが渡りません。なぜでしょうか。下記にpopup.jsと、background.jsを示します。

popup.js

[code]

    $(document).ready(function(){
      $('#submit').click(function(){
        console.log("cliecked");
        chrome.runtime.sendMessage({
          command: "get_text"
        },
        function(response){
          ここで表示されるはずだが表示されない
          console.log(response);
        });
      });
    });
    
[/code]

background.js

[code]

    chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
      chrome.tabs.query({active: true, windowId: chrome.windows.WINDOW_ID_CURRENT}, function(result){
        chrome.tabs.sendMessage(result.shift().id, {
          command: "get_dom"
        },
        function(msg) {
          console.log("result message:", msg);
          $.ajax({
            type:"POST",
            url:"http://localhost:3000",
            data: JSON.stringify({
              text: msg
            }),
            dataType: "json",
            contentType:"application/json; charset=UTF-8",
            crossDomain: true,
            success: function(data){
              console.log(data);
              //コールバック関数呼び出し
              sendResponse(data);
            }
          })
        });
    
      });
    });
    
[/code]


CC BY-SA 3.0
2015-11-27T15:19:00.590
19381
2015-11-29T01:05:16.960
2015-11-28T02:00:54.157
7232
7232
question
javascript jquery chrome-extension
JavaScriptでコールバック関数が正しく呼ばれない