我试图确定用户是处于私人/隐身浏览模式。所以,我试图访问indexedDB来测试私有模式:
var is_private = false;
if (window.indexedDB && /Firefox/.test(window.navigator.userAgent)) {
var db;
try {
db = window.indexedDB.open('test');
} catch(e) {
is_private = true;
}
}
在Firefox默认版本(非ESR)上,工作正常:普通浏览is_private
为false
,私密模式is_private
等于true
。
但是在Firefox ESR上,即使在正常浏览模式下,最新版本也会返回true。
Firefox ESR上的 console.error从window.indexedDB.open('test')
行的下方打印返回此错误:
修改 我编写了下面的js代码以获取有关错误异常的更多详细信息:
var db = window.indexedDB.open('test');
db.onerror = function(event) {
console.log(db.error);
});
输出为:DOMError { name: "UnknownError", message: "The operation failed for reasons unrelated to the database itself and not covered by any other error code." }
在浏览器控制台中:
console.log(window.indexedDB.open('test'));
输出是:
IDBOpenDBRequest { onblocked: null, onupgradeneeded: null, source: null, transaction: null, readyState: "pending", onsuccess: null, onerror: null }
请注意, readyState
始终为"pending"