2010-10-18 2 views
6

Я пишу расширение Safari и хочу, чтобы он вел себя по-другому, когда пользователь включил режим частного просмотра (я хочу уважать этот частный режим).Как узнать расширение Safari, если включен режим частного просмотра?

Об этом я не упоминал в документах Apple.

Я в курсе дискуссии в этой теме:

Detecting if a browser is using Private Browsing mode

, который предлагает использовать (браузер агностик) JS-CSS трюк для обнаружения Частно-просматривающие режим, но надеялся, что есть какая-то крюк встроенный в Safari, который я мог бы использовать для моего расширения.

Любые идеи?

ответ

0

Все частные режимы будут игнорировать текущий статус cookiejar, используемый браузером. Используйте что-то вроде evercookie для отслеживания определенного браузера и того, как он управляет его различными идентификаторами сеанса. Например, если у вас есть http cookie, срок действия которого истекает через 60 лет, и это значение cookie отсутствует в запросе на ваш сервер, то вы знаете, что значения cookie были сброшены или они находятся в закрытом режиме. Для этого потребуется немного больше экспериментов на вашей стороне, но это направление будет общим методом обнаружения использования частного режима в браузерах.

1

Вы можете запросить boolean safari.application.privateBrowsing.enabled, чтобы проверить, включен ли частный просмотр или нет.

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

safari.application.privateBrowsing.addEventListener('activate', function(e) { 
    console.log("Private browsing activated"); 
}); 

safari.application.privateBrowsing.addEventListener('deactivate', function(e) { 
    console.log("Private browsing deactivated"); 
}); 

Источник: Apple Docs

Смежные вопросы