Chrome扩展程序在面板和内容脚本之间发送数据

时间:2016-10-31 20:11:27

标签: javascript google-chrome google-chrome-extension

我必须承认chrome api似乎让我感到困惑。我正在尝试创建一个扩展(页面操作),其中内容脚本将向弹出窗口发送消息,反之亦然。

    {
  "manifest_version": 2,
  "name":    "Test Extension",
  "version": "0.0",
  "offline_enabled": true,
  "background": {
    "persistent": false,
    "scripts": ["background.js"]
  },
  "content_scripts": [{
    "matches":    ["*://*.stackoverflow.com/*"],
    "js":         ["jquery.js", "content.js"],
    "run_at":     "document_idle",
    "all_frames": false
  }],

  "page_action": {
    "default_title": "Test Extension"
  }
}

background.js:

chrome.runtime.onMessage.addListener(function (msg, sender) {
  if ((msg.from === 'content') && (msg.subject === 'showPageAction')) {
    chrome.pageAction.show(sender.tab.id);
  }
});
chrome.pageAction.onClicked.addListener(function (tab) {
    chrome.windows.create({ url: 'popup.html', type: 'panel' });
});

content.js:

chrome.runtime.sendMessage({
  from:    'content',
  subject: 'showPageAction'
});

现在棘手的部分:单击弹出窗口中的一个按钮,该按钮将使用内容脚本向选项卡发送消息,内容脚本将运行处理dom的函数,完成后将消息发送回弹出窗口。

0 个答案:

没有答案