Firefox addon 未调用onsyncfrompreference
我正在编写一个Firefox插件,对于Firefox addon 未调用onsyncfrompreference,firefox-addon,xul,Firefox Addon,Xul,我正在编写一个Firefox插件,对于XUL元素,onsyncfrompreference似乎没有被调用(Firefox14)。以下是我的偏好: ... 这是规模: 这些日志目前只是用于调试,onsynctopreference在控制台上显示时被称为“没问题”,但是没有来自onsyncfrompereference的条目。我在defaults.js中定义了一个默认值,我使用Javascript解决了这个问题: <script type="text/javascript">
XUL元素,onsyncfrompreference
似乎没有被调用(Firefox14)。以下是我的偏好:
...
这是规模:
这些日志目前只是用于调试,
onsynctopreference
在控制台上显示时被称为“没问题”,但是没有来自onsyncfrompereference
的条目。我在defaults.js
中定义了一个默认值,我使用Javascript解决了这个问题:
<script type="text/javascript">
var loaded = false;
//load preferences
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService)
.getBranch("extensions.bb");
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);
function loadpref() //call this in the prefwindow onload
{
document.getElementById('bb-sensitivity').value = prefs.getCharPref('sensitivity');
loaded = true;
}
function setpref(sensitivity)
{
if(loaded) //onchange for scale fires before onload for the window
{
prefs.setCharPref('sensitivity',sensitivity);
}
}
</script>
var-load=false;
//加载首选项
var prefs=Components.classes[“@mozilla.org/preferences service;1”]
.getService(组件.接口.服务)
.getBranch(“extensions.bb”);
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);
函数loadpref()//在预加载窗口onload中调用此函数
{
document.getElementById('bb-sensitivity')。value=prefs.getCharPref('sensitivity');
加载=真;
}
函数setpref(灵敏度)
{
if(loaded)//在为窗口加载之前,对缩放火灾进行onchange
{
prefs.setCharPref(“灵敏度”,灵敏度);
}
}
以及比例元素:
<scale min="1" max="100" increment="1"
preference="pref-sensitivity"
id="bb-sensitivity"
onchange="setpref(this.value);"
/>
我暂时不回答这个问题,看看有没有其他人可以帮忙。我仍然希望以“正确”的方式执行此操作。如果您查看,onsyncfrompreference
将仅为“可编辑”元素调用。至于什么是“可编辑的”,你可以看到。某些元素始终被认为是可编辑的,其他元素必须明确指定preference editable=“true”
属性。在您的情况下,后者意味着您的修复将如下所示: