,它说,getBackgroundPage()
返回运行后台页面的JavaScript“窗口”对象 在当前扩展名内。
是哪个窗口?它与我们得到的窗口相同:“chrome.windows.getCurrent()”。
答案 0 :(得分:1)
如果您在manifest.json
中指定了背景页面,则在您的扩展程序运行时该页面实际上是“已打开”(转到chrome://extensions
并查找包含属性Inspect views: some_background_page.html
的扩展程序) 。虽然您实际上看不到该页面,但它确实存在,并且正如文档所述,运行getBackgroundPage()
将返回该页面的“窗口”对象,允许您在普通窗口上执行所有操作(请参阅here以获取其中一些属性/操作的列表。
要回答第二个问题,您可以阅读here当前窗口的值从后台页面调用时回退到上一个活动窗口。以下是可能有助于解释的示例background.js
- 它将显示getCurrent
和getAllinWindow
的相同ID,这两个ID都将引用您调用的活动/可见页面中的页面扩展名 - 不是背景页本身:
// This gets all current window tabs
chrome.tabs.getAllInWindow(null, function(tabs){
// This alerts the window ID when getCurrent is called from background.js
chrome.windows.getCurrent(function(window){
alert("Background ID: " + window.id);
});
// Now we loop through the tabs returned by getAllInWindow,
// showing the window ID. The ID is identical to the one above,
// meaning that getCurrent (when called from a background page)
// returns the current active window - NOT the background page
chrome.windows.get(tabs[0].windowId, function(window) {
alert("Active Window: " + window.id);
});
});
希望有所帮助!