Advertisement
Ladies_Man

CX message passing Example

Aug 3rd, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //POPUP
  2. document.addEventListener('DOMContentLoaded', function() {
  3.     document.getElementById('trigger').addEventListener("click", function() {
  4.         //message to background
  5.         chrome.extension.sendMessage({
  6.             key: "KEY_1",
  7.             data1: "abc"
  8.         }, function(response){
  9.             if (response.key_back1 == "BACK_1")
  10.                 alert('response:' + response.key_back1);
  11.         });
  12.     });
  13. });
  14.  
  15.  
  16. //BACKGROUND
  17. function process_data_from_popup(data_from_popup) {
  18.     chrome.tabs.query({active: true, highlighted: true}, function(tabs) {
  19.         //message to content
  20.             chrome.tabs.sendMessage(tabs[0].id, {
  21.             key: "KEY_2",
  22.             data2: data_from_popup
  23.         }, function(response){
  24.             if (response.key_back2 == "BACK_2")
  25.                 alert('response:' + response.key_back2);
  26.         });
  27.         });
  28. }
  29. function process_data_from_page(data_from_content) {
  30.     alert('Data sent from popup:""' + data_from_content + '""');
  31. }
  32. chrome.extension.onMessage.addListener(function(msg, sender, sendResponse) {
  33.     switch (msg.key) {
  34.         case "KEY_1":
  35.             sendResponse({key_back1: "BACK_1"});
  36.             process_data_from_popup(msg.data1);
  37.             break;
  38.         case "KEY_3":
  39.             sendResponse({key_back3: "BACK_3"});
  40.             process_data_from_page(msg.data3);
  41.             break;
  42.     }
  43. });
  44.  
  45.  
  46. //CONTENT
  47. function modify(data_from_background) {
  48.     //message to background
  49.     chrome.runtime.sendMessage({
  50.         key: "KEY_3",
  51.         data3: data_from_background
  52.     }, function(response){
  53.         if (response.key_back3 == "BACK_3")
  54.             alert('response:' + response.key_back3);
  55.     });
  56. }
  57. chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
  58.     switch (msg.key) {
  59.         case "KEY_2":
  60.             sendResponse({key_back2: "BACK_2"});
  61.             modify(msg.data2);
  62.             break;
  63.     }
  64.     return true;
  65. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement