Можно ли определить, находится ли Chrome в режиме инкогнито с помощью пользовательского скрипта?
Я задавал этот вопрос раньше, но не дал понять, что я имел в виду в сценарии пользователя, а не в JavaScript с веб-страницы. Так что теперь я буду более ясным.
Можно ли определить, находится ли Google Chrome в режиме инкогнито с помощью пользовательского сценария (в основном сценарий запускается как расширение в браузере, а не сценарий, запускаемый на веб-странице)?
3 ответа
Если вы разрабатываете расширение, вы можете использовать API вкладок, чтобы определить, является ли окно / вкладка инкогнито.
Дополнительную информацию можно найти на code.google.com.
Если вы просто работаете с веб-страницей или пользовательским сценарием, это нелегко, и она разработана таким образом. Тем не менее, я заметил, что все попытки открыть базу данных (window.database) терпят неудачу, когда в режиме incongnito, это потому, что в режиме инкогнито не разрешается оставлять никаких следов данных на компьютере пользователя.
Я не проверял это, но я подозреваю, что все вызовы localStorage также терпят неудачу.
Чтобы определить, находится ли окно в режиме инкогнито, проверьте свойство инкогнито соответствующего объекта Tab или Window. Например:
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
}