您能否通过脚本确定 Chrome 是否处于隐身模式?
2022-08-30 04:20:28
是否可以通过脚本确定谷歌浏览器是否处于隐身模式?
编辑:我实际上的意思是可以通过用户脚本实现,但答案假设JavaScript在网页上运行。我在这里重新提出了有关用户脚本的问题。
是否可以通过脚本确定谷歌浏览器是否处于隐身模式?
编辑:我实际上的意思是可以通过用户脚本实现,但答案假设JavaScript在网页上运行。我在这里重新提出了有关用户脚本的问题。
此答案的功能取决于 Chrome 版本。最近的评论是这个作品在v90
中
是的。文件系统 API 在隐身模式下被禁用。当您处于和未处于隐身模式时,请查看 https://jsfiddle.net/w49x9f1a/。
示例代码:
var fs = window.RequestFileSystem || window.webkitRequestFileSystem;
if (!fs) {
console.log("check failed?");
} else {
fs(window.TEMPORARY,
100,
console.log.bind(console, "not in incognito mode"),
console.log.bind(console, "incognito mode"));
}
在Chrome 74到84.0.4147.135中,您可以通过估计可用的文件系统存储空间来确定这一点。
查看 jsfiddle
if ('storage' in navigator && 'estimate' in navigator.storage) {
const {usage, quota} = await navigator.storage.estimate();
console.log(`Using ${usage} out of ${quota} bytes.`);
if(quota < 120000000){
console.log('Incognito')
} else {
console.log('Not Incognito')
}
} else {
console.log('Can not detect')
}