从弹出窗口中调用后台函数

发布于 2024-10-27 12:41:58 字数 100 浏览 1 评论 0原文

有没有办法从弹出窗口调用后台脚本中的函数?我无法比这个问题进一步解释。这不是我想做的事情的错误,而是我完全不知道该怎么做的事情。我希望能够单击弹出页面中的按钮来调用后台页面中定义的函数。

Is there a way to call a function in the background script from the popup? I can't explain it much further than that question. It's not an error I'm having with what I'm trying to do but rather something I completely don't know how to do. I want to make it possible to click a button in the popup page that'll call a function defined in the background page.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

只是偏爱你 2024-11-03 12:41:58

试试这个

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

Try this

 var bgPage = chrome.extension.getBackgroundPage();
 var dat =  bgPage.paste(); // Here paste() is a function that returns value.
ぃ弥猫深巷。 2024-11-03 12:41:58

使用消息传递确实是可能的。

popup.js

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

背景.js

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

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

It is indeed possible, using 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();
    }
);
故事未完 2024-11-03 12:41:58

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

编辑:您可能需要添加

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

在你的manifest.json 文件中。

You can just call background.js functions in popup.js. You don't need to do anything extra. At least that is the case for me.

Edit: you probably need to add

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

in your manifest.json file.

烂柯人 2024-11-03 12:41:58

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

You can still use chrome.extension.sendMessage.
But that is getting deprecated.
Use chrome.runtime.sendMessage and chrome.runtime.onMessage.addListener instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文