Function 从弹出窗口在后台调用函数

Function 从弹出窗口在后台调用函数,function,background,popup,google-chrome-extension,call,Function,Background,Popup,Google Chrome Extension,Call,有没有办法从弹出窗口调用后台脚本中的函数?除了那个问题,我无法解释得更多。这不是我试图做的错误,而是我完全不知道该怎么做。我希望能够在弹出页面中单击一个按钮,该按钮将调用后台页面中定义的函数。确实可以使用 popup.js $("#button").click(function(){ chrome.runtime.sendMessage({ msg: "startFunc" }); }); background.js var func = function(){ alert("

有没有办法从弹出窗口调用后台脚本中的函数?除了那个问题,我无法解释得更多。这不是我试图做的错误,而是我完全不知道该怎么做。我希望能够在弹出页面中单击一个按钮,该按钮将调用后台页面中定义的函数。

确实可以使用

popup.js

$("#button").click(function(){
    chrome.runtime.sendMessage({ msg: "startFunc" });
});
background.js

var func = function(){
    alert("Success!");
};

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse){
        if(request.msg == "startFunc") func();
    }
);
试试这个

 var bgPage = chrome.extension.getBackgroundPage();
 var dat =  bgPage.paste(); // Here paste() is a function that returns value.

您仍然可以使用
chrome.extension.sendMessage
。 但这正遭到反对。
改用
chrome.runtime.sendMessage
chrome.runtime.onMessage.addListener

您可以在popup.js中调用background.js函数。你不需要做任何额外的事情。至少对我来说是这样

编辑:您可能需要添加

“背景”:{
“脚本”:“background.js”
}


在manifest.json文件中。

我知道我可以做到这一点,只是需要找到一个示例。谢谢。工作正常,但我必须将我的函数定义为
window.myFun=…
而不是
function myFun…
可能重复的