Chrome extensionでpopuup.js
からbackground.js
にsendMessage()
関数を呼び出して、更にbackground.js
にてcontent scriptからDOMの要素を取得して、その値を使ってAjaxを行ったあとに、popup.js
のコールバック関数を呼びましたが、Ajaxでデータを取ってくるところまではできますが、その後にpopup.js
のコールバック関数を呼び出しても、データが渡りません。なぜでしょうか。下記にpopup.jsと、background.jsを示します。
popup.js
$(document).ready(function(){ $('#submit').click(function(){ console.log("cliecked"); chrome.runtime.sendMessage({ command: "get_text" }, function(response){ ここで表示されるはずだが表示されない console.log(response); }); }); });
background.js
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); } }) }); }); });
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/28 09:04 編集
2015/11/28 09:26
2015/11/28 10:59 編集