Можно ли определить, если Chrome находится в режиме Incognito через пользовательский скрипт?
-
04-10-2019 - |
Вопрос
я задал этот вопрос раньше Но не понял, что я имел в виду в пользовательском сценарии, а не в JavaScript с веб-страницы. Так что я буду сейчас более понятным.
Можно ли определить, находится ли Chrome Google в режиме Incognito через пользовательский скрипт (в основном сценарий работает как расширение в браузере, а не скрипт на веб-странице)?
Решение
Если вы разрабатываете расширение, вы можете использовать API вкладок, чтобы определить, если окно / вкладка Incognito.
Больше информации можно найти на code.google.com..
Если вы просто работаете с веб-страницей или пользователем, это не просто, и он предназначен так, чтобы быть таким образом. Тем не менее, я заметил, что все попытки открыть базу данных (Window.Database), когда в Incongnito это потому, что когда в Incognito след данных не может оставить на машине для пользователей.
Я не проверил это, но я подозреваю, что все призывы к LocalStorage тоже не ударуются.
Другие советы
Чтобы обнаружить, находится ли окно в режиме Incognito, проверьте Incognito недвижимость соответствующей вкладки или окна объекта. Например:
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
}
В наше время это довольно легко сделать из сценария контента. Просто использовать
if(chrome.extension.inIncognitoContext) {
//you're incognito
} else {
//you're not
}