Как определить, что вы находитесь в режиме инкогнито с помощью JavaScript в Google Chrome

В некоторых случаях и в зависимости от типа веб-сайтов, над которыми вы работаете … если вы знаете, что я имею в виду … вам нужно будет знать, перемещается ли ваш пользователь в браузере 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");
}
});
Ссылка на основную публикацию
Adblock
detector