【发布时间】:2011-07-23 12:38:58
【问题描述】:
有没有办法从弹出窗口调用后台脚本中的函数?我无法比那个问题更进一步地解释它。这不是我正在尝试做的事情的错误,而是我完全不知道该怎么做的事情。我想让点击弹出页面中的按钮成为可能,该按钮将调用后台页面中定义的函数。
【问题讨论】:
标签: function background popup google-chrome-extension call
有没有办法从弹出窗口调用后台脚本中的函数?我无法比那个问题更进一步地解释它。这不是我正在尝试做的事情的错误,而是我完全不知道该怎么做的事情。我想让点击弹出页面中的按钮成为可能,该按钮将调用后台页面中定义的函数。
【问题讨论】:
标签: function background popup google-chrome-extension call
试试这个
var bgPage = chrome.extension.getBackgroundPage();
var dat = bgPage.paste(); // Here paste() is a function that returns value.
【讨论】:
window.myFun = ... 而不仅仅是function myFun ...
确实可以,使用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();
}
);
【讨论】:
您可以在 popup.js 中调用 background.js 函数。你不需要做任何额外的事情。至少我是这样的。
编辑:您可能需要添加
"background": {
"scripts": "background.js"
}
在您的 manifest.json 文件中。
【讨论】:
您仍然可以使用chrome.extension.sendMessage。
但这正在被弃用。
请改用chrome.runtime.sendMessage 和chrome.runtime.onMessage.addListener。
【讨论】: