是否可以通过用户脚本确定Chrome是否处于隐身模式?

Rod*_*own 21 userscripts google-chrome-extension incognito-mode

之前问过这个问题,但没有说清楚我的意思是用户脚本,而不是来自网页的JavaScript.所以我现在会更清楚.

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

Sha*_*ziz 11

要检测窗口是否处于隐身模式,请检查相关Tab或Window对象的隐身属性.例如:

var bgPage = chrome.extension.getBackgroundPage();

function saveTabData(tab, data) {
  if (tab.incognito) {
    bgPage[tab.url] = data;       // Persist data ONLY in memory
  } else {
    localStorage[tab.url] = data; // OK to store data
}
Run Code Online (Sandbox Code Playgroud)

http://code.google.com/chrome/extensions/overview.html


Kin*_*lan 8

如果您正在开发扩展程序,则可以使用选项卡API来确定窗口/选项卡是否隐身.

有关详细信息,请访问code.google.com.

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

我没有测试过,但我怀疑对localStorage的所有调用都失败了.

  • 当chrome处于InCognito模式时,localStorage的行为类似于sessionStorage. (2认同)