编程语言
首页 > 编程语言> > javascript – FF扩展:在浏览器的多个实例上持续存在的全局变量,直到重置?

javascript – FF扩展:在浏览器的多个实例上持续存在的全局变量,直到重置?

作者:互联网

我们可以使用一个全局变量来保持多个浏览器实例(FF)吗?
我正在构建一个ff扩展,它必须占用主机和放大器.来自用户的端口名称,然后使用该主机和端口相应地执行菜单选项.此主机和端口必须保持相同,直到用户重置它(将为其提供选项)
在JS文件中将变量声明为全局变量时,每次重新启动浏览器时它都将变为null.任何人都可以帮我解决如何以及在何处保存此变量以获得所需的功能.下面是设置首选项的代码.但对我来说不起作用

function setInstance() {
    if (pref_manager.prefHasUserValue("myvar")) {
        getString = pref_manager.getString("myvar");
        instance = getString;
    }
    if (instance == null) {
        instance = prompt("Please enter webcenter host and port");
        // Setting the values
        pref_manager.setString("myvar", instance);
        pref_manager.setIntPref("myintvar", 1);
    }
}

打开扩展菜单选项后立即调用此函数. instance是一个全局变量,我只需要用户输入一次直到重置

解决方法:

这是一个很老的帖子,但仍然.给定代码中有两个位似乎不起作用.

此代码段对我不起作用:

getString = pref_manager.getString("myvar");

相反,我使用下面的那个,这对我有用:

getString = pref_manager.getCharPref("myvar");

同样适用于setter.这对我不起作用:

pref_manager.setString("myvar", "mystring");

但这样做:

pref_manager.setCharPref("myvar", "mystring");

见:http://www.rietta.com/firefox/Tutorial/prefs.html

标签:xul,javascript,scope,firefox
来源: https://codeday.me/bug/20190827/1740824.html