我正在编写一个Safari扩展程序,并希望当用户打开“私密浏览”模式时,它的行为会有所不同(我想尊重这种私有模式)。
我在Apple的文档中没有提到这一点。
我知道这个帖子中的讨论:
Detecting if a browser is using Private Browsing mode
建议使用(浏览器不可知的)js-CSS技巧来检测私人浏览模式,但希望Safari内置一些钩子,我可以用它来扩展。
有什么想法吗?
答案 0 :(得分: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
答案 1 :(得分:0)
所有私有模式都将忽略浏览器使用的cookiejar的当前状态。使用类似evercookie的内容来跟踪特定浏览器以及它如何管理其各种会话ID。例如,如果您的http cookie在60年后到期,并且在您的服务器的请求中不存在此cookie值,那么您知道cookie值已被刷新或者它们处于私有模式。这将需要您进行更多的实验,但这个方向将是检测浏览器中私有模式使用的一般方法。