【问题标题】:Chrome Extension - Message Passing from Popup to Content ScriptChrome 扩展 - 从弹出窗口到内容脚本的消息传递
【发布时间】:2011-08-31 19:43:48
【问题描述】:

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

这就是我所拥有的:

popup.html

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

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);

【问题讨论】:

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


    【解决方案1】:

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

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

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

    欲了解更多信息,请查看此页面:Message Passing

    【讨论】:

    • 只想指出 sendRequest 自 Chrome 20 以来已被弃用,并已被 sendMessage 取代,这就是我遇到此问题的原因。此答案中的更多信息stackoverflow.com/a/11587062/381010
    猜你喜欢
    • 2017-12-24
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多