Можно ли определить, находится ли Chrome в режиме инкогнито с помощью сценария пользователя? - PullRequest
20 голосов
/ 27 мая 2010

Я задавал этот вопрос раньше , но не дал понять, что я имел в виду в сценарии пользователя, а не в JavaScript с веб-страницы. Так что теперь я буду более ясен.

Можно ли определить, находится ли Google Chrome в режиме инкогнито с помощью пользовательского сценария (в основном это скрипт, запускаемый как расширение в браузере, а не скрипт, запускаемый на веб-странице)?

Ответы [ 3 ]

11 голосов
/ 27 мая 2010

Чтобы определить, находится ли окно в режим инкогнито, отметьте инкогнито свойство соответствующей вкладки или Оконный объект. Например:

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
}

http://code.google.com/chrome/extensions/overview.html

8 голосов
/ 27 мая 2010

Если вы разрабатываете расширение, вы можете использовать API вкладок, чтобы определить, является ли окно / вкладка инкогнито.

Дополнительную информацию можно найти на code.google.com .

Если вы просто работаете с веб-страницей или сценарием пользователя, это нелегко, и оно разработано именно так. Тем не менее, я заметил, что все попытки открыть базу данных (window.database) терпят неудачу при работе в режиме incongnito, это потому, что при работе в режиме инкогнито не разрешается оставлять никаких следов данных на компьютере пользователя.

Я не проверял это, но я подозреваю, что все вызовы localStorage тоже терпят неудачу.

0 голосов
/ 10 августа 2016

В наше время это довольно легко сделать из скрипта контента. Просто используйте

if(chrome.extension.inIncognitoContext) {
    //you're incognito
} else {
    //you're not
}
...