XUL文本框的自定义onsynctopreference

时间:2010-12-26 07:47:45

标签: firefox-addon xul

我想在我的Firefox扩展程序中启用自定义快捷方式。这个想法是用户只关注文本框,按下组合键,然后显示在文本框中并保存到首选项中。但是,我无法让它发挥作用。有了这个XUL

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://mozapps/skin/pref/pref.css" type="text/css"?>

<!DOCTYPE window SYSTEM "chrome://nextplease/locale/nextplease.dtd">
<prefwindow id="nextpleaseprefs" title="&options.title;" buttons="accept, cancel"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <prefpane id="nextplease.general" label="&options.general.title;" image="chrome://nextplease/skin/Sound Mixer.png">
        <preferences>
            <preference id="nextkey" name="nextplease.nextkey" type="int"/>
        </preferences>
        <vbox flex="1">
            <hbox align="center">
                <label value="&options.general.nextKey;" />
                <textbox id="nextkey" flex="1" editable="false" 
                         onkeyup="return nextplease.handleKeySelection(this, event);" 
                         preference-editable="true" preference="nextkey" 
                         onsynctopreference="alert('syncing'); return nextplease.syncKeySelector(this);"/>
            </hbox>
        </vbox>
    </prefpane>

    <script type="application/x-javascript" src="chrome://nextplease/content/nextpleaseCommon.js" />
    <script type="application/x-javascript" src="chrome://nextplease/content/nextpleaseOptions.js" />
</prefwindow>

onkeyup中的活动有效。但是,当我单击“确定”按钮时,我看到“同步”警报。为什么onsynctopreference无效?是否无法为文本框设置自定义onsynctopreference属性?

1 个答案:

答案 0 :(得分:1)

似乎问题只是偏好仅在input事件(可能是其他事件)上同步,而不是在keyup上同步。