Chrome扩展程序 - 从弹出窗口传递到内容脚本的消息

ktr*_*oss 12 javascript messaging google-chrome google-chrome-extension

我正在尝试将数据从弹出窗口传递到内容脚本,但我没有运气.我让它以相反的方式工作(内容 - >弹出窗口).我想要做的就是将文本输入到弹出窗口中的输入中,然后单击一个提交按钮,该按钮会将该文本插入到网页的dom中.

这就是我所拥有的:

popup.html

chrome.extension.sendRequest({action:'start'}, function(response) {
    console.log('Start action sent');  
});
Run Code Online (Sandbox Code Playgroud)

contentscript.js

function startExtension() { console.log('Starting Extension'); }

function stopExtension() { console.log('Stopping Extension'); }

function onRequest(request, sender, sendResponse) {
    if (request.action == 'start')
        startExtension()
    else if (request.action == 'stop')
        stopExtension()
    sendResponse({});
}

chrome.extension.onRequest.addListener(onRequest);
Run Code Online (Sandbox Code Playgroud)

Dio*_*mes 10

您需要指定要发送到哪个选项卡.像这样:

chrome.tabs.sendMessage(tab.id, {action:'start'}, function(response) {
    console.log('Start action sent');
});
Run Code Online (Sandbox Code Playgroud)

如果你不知道哪个是标签,你可以发送给所有人(可能是个坏主意)或者让标签首先发送信息.

有关更多信息,请查看此页面:消息传递.

  • 只是想指出自从Chrome 20以来已经弃用了sendRequest,并且已被sendMessage取代,这就是我遇到此问题的原因.有关此答案的更多信息,请访问http://stackoverflow.com/a/11587062/381010 (7认同)