Chrome扩展程序 - 消息从弹出窗口传递到内容脚本
问题描述:
我试图将数据从弹出窗口传递给内容脚本,但我没有任何运气。尽管我用它的方式(内容 - >弹出)反过来工作。我想要做的就是将文本输入位于弹出窗口中的输入内容,然后单击一个提交按钮,将该文本插入到网页的dom中。Chrome扩展程序 - 消息从弹出窗口传递到内容脚本
这是我有:
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);
答
你需要指定发送给哪个选项卡。就像这样:
chrome.tabs.sendMessage(tab.id, {action:'start'}, function(response) {
console.log('Start action sent');
});
如果你不知道哪个是标签,你可以发送到所有(可能是一个坏主意),或使标签先发送信息。
欲了解更多信息,请查阅此页:Message Passing。
只是想指出sendRequest自Chrome 20以来已被弃用,并已被sendMessage取代,这是我遇到问题的原因。更多信息在这个答案http://*.com/a/11587062/381010 – Joris 2013-02-18 12:20:15
更新我的回应。 – 2015-09-10 13:17:14