Chrome 扩展隐身模式:检查是否已激活或以按钮启动?

use*_*637 0 javascript google-chrome-extension

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

Xan*_*Xan 6

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

您可以通过检查来检测是否允许隐身访问chrome.extension.isAllowedIncognitoAccess()(请注意它的异步性质)。如果返回 false,您可以引导用户启用它(感谢 Rob W 提供的链接)。

当您被授予访问权限时会发生什么由manifest 中“隐身”设置控制。

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

如果设置为“拆分”,您将有 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
  }
});
Run Code Online (Sandbox Code Playgroud)

要打开新的隐身选项卡/窗口,您可以传入incognito: true描述您正在创建的选项卡/窗口的对象。

您不需要上述tabs任何一项的许可。有关更多详细信息,请参阅选项卡Windows API 文档。