Google chrome extension 是否可以通过用户脚本确定Chrome是否处于匿名模式?

Google chrome extension 是否可以通过用户脚本确定Chrome是否处于匿名模式?,google-chrome-extension,userscripts,incognito-mode,Google Chrome Extension,Userscripts,Incognito Mode,但我没有明确表示我是指用户脚本,而不是网页上的JavaScript。所以我现在要更清楚 是否可以通过用户脚本(基本上是作为浏览器扩展运行的脚本,而不是在网页上运行的脚本)确定Google Chrome是否处于匿名模式 检测窗口是否处于打开状态 隐姓埋名模式,检查隐姓埋名 相关选项卡的属性,或 窗口对象。例如: 如果您正在开发一个扩展,那么您可以使用tabs API来确定某个窗口/选项卡是否不知名 有关更多信息,请访问 如果你只是在处理一个网页或一个用户脚本,这并不容易,而且它就是这样设计的。但是

但我没有明确表示我是指用户脚本,而不是网页上的JavaScript。所以我现在要更清楚

是否可以通过用户脚本(基本上是作为浏览器扩展运行的脚本,而不是在网页上运行的脚本)确定Google Chrome是否处于匿名模式

检测窗口是否处于打开状态 隐姓埋名模式,检查隐姓埋名 相关选项卡的属性,或 窗口对象。例如:


如果您正在开发一个扩展,那么您可以使用tabs API来确定某个窗口/选项卡是否不知名

有关更多信息,请访问

如果你只是在处理一个网页或一个用户脚本,这并不容易,而且它就是这样设计的。但是,我注意到,在incognito中打开数据库(window.database)的所有尝试都会失败,这是因为在incognito中,不允许在用户计算机上留下任何数据痕迹


我还没有测试过它,但我怀疑对localStorage的所有调用也会失败。

现在,从内容脚本执行此操作非常容易。只用

if(chrome.extension.inIncognitoContext) {
    //you're incognito
} else {
    //you're not
}

为什么你想知道这一点?我想写一个扩展,如果它以匿名模式打开,它会关闭标签,因为谷歌没有提供一种不让它出现的方式。。因此,这不是当前会话的有效检测方法。当chrome处于匿名模式时,localStorage的行为类似于sessionStorage。
if(chrome.extension.inIncognitoContext) {
    //you're incognito
} else {
    //you're not
}