Greasemonkey检测隐私浏览模式?

use*_*300 11 javascript greasemonkey

如果当前在Firefox私密浏览窗口中运行,我需要使我的Greasemonkey脚本的行为有所不同.是否可以从Greasemonkey中检测到这一点?如果没有,那么是否可以在私密浏览模式下完全不运行?

编辑:我想这样做的一个原因是通常脚本发出AJAX请求,其中包括有关被访问页面的信息,服务器端可能存储该信息(在正常模式下浏览时可以).但是,如果用户处于私人浏览状态,我不希望服务器端拥有用户正在访问该页面的信息,因此我希望在这种情况下不要进行这些请求.

Dwa*_*ton 1

在 Firefox 的插件中,您可以使用以下来自Mozilla 开发人员文档的代码来检测浏览器是否处于隐私浏览模式。然而,这是一个内部 API,只能从插件内部访问,不能从网站或第三方脚本访问。

不能保证这会对您有所帮助,因为我不确定 Grease Monkey 是否公开了 Firefox 中的组件 API 以在 GM 脚本中使用。初步搜索似乎没有发现任何此类情况。

try {
    var pbs = Components.classes["@mozilla.org/privatebrowsing;1"]
                    .getService(Components.interfaces.nsIPrivateBrowsingService);

    var inPrivateBrowsingMode = pbs.privateBrowsingEnabled;

    if (!inPrivateBrowsingMode) {
    /* save private information */
    }
} catch(e){
  alert("Error!");
}  
Run Code Online (Sandbox Code Playgroud)