0

在文档中,它说 getBackgroundPage()

返回当前扩展内运行的背景页面的 JavaScript“窗口”对象。

它是哪个窗口?它与我们使用的窗口是否相同:“chrome.windows.getCurrent()”。

4

1 回答 1

1

如果您在 中指定背景页面manifest.json,则该页面在您的扩展程序运行时实际上是“打开的”(转到chrome://extensions并查找具有属性的扩展程序Inspect views: some_background_page.html)。尽管您实际上看不到该页面,但它确实存在,并且正如文档所述,运行getBackgroundPage()将返回该页面的“窗口”对象,允许您在普通窗口上执行所有可以执行的操作(请参阅此处获取列表其中一些属性/操作)。

要回答您的第二个问题,您可以在此处阅读当前窗口的值在从后台页面调用时回落到最后一个活动窗口。background.js这是一个可能有助于解释的示例- 它会显示 和 的相同 ID getCurrentgetAllinWindow两者都将引用您调用扩展的活动/可见页面中的页面 - 而不是背景页面本身:

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

希望有帮助!

于 2012-10-29T17:40:34.980 回答