我正在开发一个简单的扩展程序,但是我不知道如何继续。我想这是一个“简单”的问题。
场景:
用户选择一个文本
打开上下文菜单并点击扩展
新的标签页将打开
用所选/突出显示的文本填充文本区域
我做了前三项,而到第四项,我尝试了chrome.tabs.query / executeScript / messaging,ajax发布……没有成功。
function sendReport() {
return function(info, tab) {
var selectedText = info.selectionText;
var cr_url = 'http://localhost/cr/index.php';
var tab = chrome.tabs.create({ url: cr_url }, function(tab){
});
}
}
var OgameToConverter = chrome.contextMenus.create({
"title": "Enviar Relatório",
"contexts": ["selection"],
"onclick": sendReport()
});
最佳答案
您可以使用chrome.runtime.sendMessage
或chrome.tabs.sendMessage
在选项卡之间发送消息。要接收消息,请使用chrome.runtime.onMessage.addListener
方法在“接收”选项卡上添加消息的侦听器。
例:
chrome.tabs.create({ url: cr_url }, function(tab){
chrome.tabs.sendMessage(tab.id, {greeting: "hello"}, function(){});
});
在标签中:
chrome.runtime.onMessage.addListener(
function(message, sender, sendResponse) {
// do what you want to the message
});
或者,您可以使用
window.open
创建窗口,使用window.postMessage
发送消息,并通过捕获诸如Message
之类的window.addEventListener("message", ...);
事件来接收消息。