6

我正在编写一个 Safari 扩展程序,并希望它在用户打开隐私浏览模式时表现不同(我想尊重这种隐私模式)。

我在 Apple 的文档中没有提到这一点。

我知道这个线程中的讨论:

检测浏览器是否正在使用隐私浏览模式

这建议使用(与浏览器无关的)js-CSS 技巧来检测私有浏览模式,但希望 Safari 中内置了一些可以用于我的扩展的钩子。

有任何想法吗?

4

2 回答 2

1

You can query the boolean safari.application.privateBrowsing.enabled to check if private browsing is enabled or not.

You can also attach event listeners to trigger custom code when private browsing is activated or deactivated.

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

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

Source: Apple Docs

于 2012-09-25T16:53:19.507 回答
0

所有私有模式都将忽略浏览器使用的 cookiejar 的当前状态。使用evercookie之类的东西来跟踪特定浏览器以及它如何管理其各种会话ID。例如,如果您有一个 60 年后到期的 http cookie,并且此 cookie 值不存在于对您的服务器的请求中,那么您知道 cookie 值已被刷新或者它们处于私有模式。这将需要您进行更多的实验,但这个方向将是检测浏览器中使用私有模式的通用方法。

于 2012-07-10T22:54:46.103 回答