Chrome扩展程序隐身模式:检查是否已激活或以按钮开始?

时间:2014-05-07 20:12:10

标签: javascript google-chrome-extension

如果激活了隐身模式,我可以使用Chrome扩展程序进行检查吗?或者我可以使用扩展程序中的按钮启动隐身模式吗?

1 个答案:

答案 0 :(得分:4)

首先,对扩展程序如何与隐身模式进行交互进行一些解释。请注意,默认情况下扩展程序无法在隐身模式下运行或影响/检测隐身标签。用户必须在Chrome的扩展程序设置中明确启用您的扩展程序。

您可以通过检查chrome.extension.isAllowedIncognitoAccess()来检测是否允许您进行隐身访问(请注意其异步性质)。如果它返回false,你可以guide the user to enable it(感谢Rob W的链接)。

授予访问权限时,会发生什么?"incognito" setting in the manifest

如果设置为“跨越”(默认),您将拥有一个可以访问普通和隐身上下文的背景页面。但是,这种方法有some limitations

如果设置为“拆分”,则您将拥有2个实例。您可以使用chrome.extension.inIncognitoContext检测您所在的人。


现在,问题。假设您已被允许隐身访问。

要检测给定标签/窗口中的隐身模式,您可以检查相应对象的incognito属性,即chrome.windows.getCurrent返回。

浏览器操作的代码示例单击:

chrome.browserAction.onClicked.addListener( function(tab) {
  if(tab.incognito){
    // Clicked in an Incognito window
  } else {
    // Clicked in a normal window
  }
});

要打开新的隐身标签/窗口,您可以在描述您正在创建的标签/窗口的对象中传递incognito: true

上述任何一项都不需要tabs权限。有关详细信息,请参阅TabsWindows API文档。