【问题标题】:How can a Safari extension know if Private Browsing mode is on?Safari 扩展程序如何知道隐私浏览模式是否开启?
【发布时间】:2011-04-27 01:27:50
【问题描述】:

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

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

我知道这个帖子中的讨论:

Detecting if a browser is using Private Browsing mode

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

有什么想法吗?

【问题讨论】:

    标签: security safari privacy safari-extension


    【解决方案1】:

    您可以查询布尔值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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2012-10-01
        • 1970-01-01
        • 2017-01-15
        • 2016-04-12
        • 2015-10-23
        • 1970-01-01
        • 2012-02-06
        • 1970-01-01
        • 2013-04-15
        相关资源
        最近更新 更多