我正在开发一个简单的扩展程序,但是我不知道如何继续。我想这是一个“简单”的问题。

场景:


用户选择一个文本
打开上下文菜单并点击扩展
新的标签页将打开
用所选/突出显示的文本填充文本区域


我做了前三项,而到第四项,我尝试了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.sendMessagechrome.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", ...);事件来接收消息。

10-04 11:13
查看更多