В некоторых случаях и в зависимости от типа веб-сайтов, над которыми вы работаете … если вы знаете, что я имею в виду … вам нужно будет знать, перемещается ли ваш пользователь в браузере Google Chrome в режиме инкогнито или нет. Chrome, как и другие браузеры, сохраняет файлы cookie, сеансы, историю, данные форм, пароль и временные данные для будущего использования, а режим инкогнито просто сохраняет эту информацию в отдельном месте и удаляет ее при закрытии окна инкогнито. Это означает, что ваша информация о просмотре не может быть отслежена в локальной системе. За пределами вашей системы все то же самое для провайдера Google и веб-сайта, который вы просматриваете.
Если вы по какой-либо причине хотите показывать предупреждение пользователю, если этот режим используется, мы поделимся с вами небольшим фрагментом, который поможет вам добиться этого с помощью JavaScript.
1. Проверьте наличие функции
Функция isIncognito поможет вам. Эта функция в основном проверяет, доступен ли API-интерфейс FileSystem в браузере или нет, как вы, возможно, не знаете, в режиме инкогнито JavaScript не может получить доступ к API-интерфейсу FileSystem по указанным причинам.
Предполагая, что пользователь работает с Google Chrome или нет (если пользователь не использует событие Chrome, он всегда будет возвращать false), функция вернет логическое значение, которое подтверждает, находитесь ли вы в этом режиме или нет:
/**
* Determine wheter the incognito mode of Google Chrome is available or not.
*
* @param callback Anonymous function executed when the availability of the incognito mode has been checked.
*/
function isIncognito(callback){
var fs = window.RequestFileSystem || window.webkitRequestFileSystem;
if (!fs) {
callback(false);
} else {
fs(window.TEMPORARY,
100,
callback.bind(undefined, false),
callback.bind(undefined, true)
);
}
}
2. Как его использовать
Чтобы использовать предыдущую функцию, просто вызовите ее и предоставьте в качестве первого параметра функцию, которая получает флаговую переменную в качестве первого параметра. В соответствии с логическим значением переменной itIs вы можете определить, находитесь ли вы в режиме инкогнито или нет:
isIncognito(function(itIs){
if(itIs){
console.log("You are in incognito mode");
}else{
console.log("You are NOT in incognito mode");
}
});