Chrome扩展:是否可以从后台页面调用选项页面中的函数?

Sha*_*zam 2 google-chrome-extension

如何从后台页面调用选项页面中的函数?

例如,在选项页面中,您可以调用:

    chrome.extension.getBackgroundPage().updateIcon("someDifferentIcon.png");
Run Code Online (Sandbox Code Playgroud)

从而从选项页面与后台页面进行通信。如何从后台页面与选项页面进行通信?

一个可能的困难是选项页面并不总是打开的(与背景不同),因此这可以解释为什么它不是内置的(如上所示)。我的问题是,可以吗?

leg*_*lee 5

实现您的想法的一个简单方法是使用“chrome.extension.sendRequest”API。例如:

选项.js:

chrome.extension.sendRequest({id:"updateIcon", filename:"foo.png"});
Run Code Online (Sandbox Code Playgroud)

背景.js:

chrome.extension.onRequest.addListener(funciton(request) {
    if (request && (request.id == "updateIcon"))
        updateIcon(chrome.extension.geURL(request.filename));
});
Run Code Online (Sandbox Code Playgroud)