我之前问过这个问题,但没有说清楚我的意思是在用户脚本中,而不是在网页的 JavaScript 中。所以我现在会更清楚。
是否可以通过用户脚本(基本上是在浏览器中作为扩展程序运行的脚本,而不是在网页上运行的脚本)确定 Google Chrome 是否处于隐身模式?
我之前问过这个问题,但没有说清楚我的意思是在用户脚本中,而不是在网页的 JavaScript 中。所以我现在会更清楚。
是否可以通过用户脚本(基本上是在浏览器中作为扩展程序运行的脚本,而不是在网页上运行的脚本)确定 Google Chrome 是否处于隐身模式?
要检测窗口是否处于隐身模式,请检查相关 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
}
如果您正在开发扩展,那么您可以使用选项卡 API 来确定窗口/选项卡是否隐身。
更多信息可以在code.google.com上找到。
如果您只是在使用网页或用户脚本,那并不容易,它就是这样设计的。但是,我注意到在隐身模式下打开数据库(window.database)的所有尝试都失败了,这是因为在隐身模式下,不允许在用户计算机上留下任何数据痕迹。
我还没有测试过它,但我怀疑对 localStorage 的所有调用也会失败。
如今,通过内容脚本很容易做到这一点。只需使用
if(chrome.extension.inIncognitoContext) {
//you're incognito
} else {
//you're not
}