【问题标题】:Call a function in background from popup从弹出窗口调用后台函数
【发布时间】:2011-07-23 12:38:58
【问题描述】:

有没有办法从弹出窗口调用后台脚本中的函数?我无法比那个问题更进一步地解释它。这不是我正在尝试做的事情的错误,而是我完全不知道该怎么做的事情。我想让点击弹出页面中的按钮成为可能,该按钮将调用后台页面中定义的函数。

【问题讨论】:

标签: function background popup google-chrome-extension call


【解决方案1】:

试试这个

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

【讨论】:

  • 我知道我可以做到这一点,只需要找到一个例子。谢谢。
  • 工作,但我必须将我的函数定义为window.myFun = ... 而不仅仅是function myFun ...
【解决方案2】:

确实可以,使用Message Passing

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

【讨论】:

    【解决方案3】:

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

    编辑:您可能需要添加

    "background": { "scripts": "background.js" }

    在您的 manifest.json 文件中。

    【讨论】:

      【解决方案4】:

      您仍然可以使用chrome.extension.sendMessage。 但这正在被弃用。 请改用chrome.runtime.sendMessagechrome.runtime.onMessage.addListener

      【讨论】:

        猜你喜欢
        • 2021-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多