Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FirefoxSDK:侦听非插件特定的about:config条目中的更改_Javascript_Firefox_Firefox Addon_Listener_Firefox Addon Sdk - Fatal编程技术网

Javascript FirefoxSDK:侦听非插件特定的about:config条目中的更改

Javascript FirefoxSDK:侦听非插件特定的about:config条目中的更改,javascript,firefox,firefox-addon,listener,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Listener,Firefox Addon Sdk,我试图监听firefox的about:config中的设置更改,用户可能在我的插件运行时更改了这些设置。有问题的设置是浏览器的一部分,不是由我的插件创建的 当用户使用“首选项/服务”模块使用我的加载项时,我可以手动读取和设置它们,但如果用户独立于我的加载项更改了about config中的设置,我希望能够在我的加载项中进行适当的更改 “simple prefs”模块提供了一个侦听器,但它仅适用于特定于应用程序的设置,如“extension.myaddon.mypreference”,其中我需要查

我试图监听firefox的about:config中的设置更改,用户可能在我的插件运行时更改了这些设置。有问题的设置是浏览器的一部分,不是由我的插件创建的

当用户使用“首选项/服务”模块使用我的加载项时,我可以手动读取和设置它们,但如果用户独立于我的加载项更改了about config中的设置,我希望能够在我的加载项中进行适当的更改

“simple prefs”模块提供了一个侦听器,但它仅适用于特定于应用程序的设置,如“extension.myaddon.mypreference”,其中我需要查看的设置类似于“network.someoptionhere”


如果有人能为我指出正确的方向,我将非常感激。

您需要使用一些XPCOM,即/(例如via)。这与
preferences/service
simple prefs
包装的内容相同

以下是一个完整的示例:

const {Ci, Cu} = require("chrome");
const {Services} = Cu.import("resource://gre/modules/Services.jsm", {});

function observe(subject, topic, data) {
    // instanceof actually also "casts" subject
    if (!(subject instanceof Ci.nsIPrefBranch)) {
        return;
    }
    console.error(subject.root, "has a value of", subject.getIntPref(""), "now");
}

var branch = Services.prefs.getBranch("network.http.max-connections")
branch.addObserver("", observe, false);

exports.onUnload = function() {
    // Need to remove our observer again! This isn't automatic and will leak
    // otherwise.
    branch.removeObserver("", observe);
};

谢谢你,这真是妙计。我感谢你的帮助和时间