firefox扩展开发(七) : 键盘快捷键

firefox扩展开发(七) : 键盘快捷键
2008-06-11 17:01

键盘快捷键是一个应用程序不可缺少的部分,最常见的地方在菜单栏中,在XUL中添加键盘快捷键是很简单的,只需要设置控件的accesskey属性即可:

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
  3. <window
  4. id= "test-window"
  5. title= "测试用的窗口"
  6. xmlns= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >
  7. <menubar>
  8.    <menu id="file-menu" label="文件(F)" accesskey="f">
  9.    <menupopup id="file-popup">
  10.    <menuitem id="close-command" label="关闭(X)" accesskey="x"/>
  11.    </menupopup>
  12.    </menu>
  13. </menubar>
  14. </window>

当然,accesskey属性也可以设置在其他控件上(比如按钮)。

如果要设置全局快捷键,这个时候就要用到<key>标签,每个<key>标签设置一个快捷键,最后把所有的<key>标签包含在一个<keyset>标签中即可:

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
  3. <window
  4. id= "test-window"
  5. title= "测试用的窗口"
  6. xmlns= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >
  7. <keyset>
  8. <key id="key1" modifiers="control" key="Q" oncommand="alert('你按了快捷键crtl+Q')"/>
  9. <key id="key2" modifiers="control alt" key="C" oncommand="alert('你按了快捷键crtl+alt+C')"/>
  10. <key id="key3" keycode="VK_F6" oncommand="alert('你按了快捷键F6')"/>
  11. </keyset>
  12. </window>

这里介绍了设置全局快捷键的3种情况:

第9行,设置的快捷键是crtl+q,modifiers就是通常所说的修饰键,modifiers可以取control、alt、meta、shift,分别代表了键盘上的ctrl、alt、meta、shift键。

第10行,设置的快捷键是ctrl+alt+c,演示了如何设置有两个修饰键的情况,只需把他们用空格分开即可。

第11行,设置的快捷键是F6,值得注意的是,前面两行中指示快捷键的属性是key,直接指出键盘上的字母值,但是碰到像F1、F2这样的功能键, 还有TAB和回车这样的按键,就没法通过key属性设置了,这个时候只有通过keycode设置,其实,键盘上的每个键都对应了一个keycode值,这 个值一般以“VK_”开头,下面的表格列出了常用的keycode值,对应的按键从后缀就可以看出:

VK_CANCELVK_BACKVK_TABVK_CLEAR
VK_RETURNVK_ENTERVK_SHIFTVK_CONTROL
VK_ALTVK_PAUSEVK_CAPS_LOCKVK_ESCAPE
VK_SPACEVK_PAGE_UPVK_PAGE_DOWNVK_END
VK_HOMEVK_LEFTVK_UPVK_RIGHT
VK_DOWNVK_PRINTSCREENVK_INSERTVK_DELETE
VK_0VK_1VK_2VK_3
VK_4VK_5VK_6VK_7
VK_8VK_9VK_SEMICOLONVK_EQUALS
VK_AVK_BVK_CVK_D
VK_EVK_FVK_GVK_H
VK_IVK_JVK_KVK_L
VK_MVK_NVK_OVK_P
VK_QVK_RVK_SVK_T
VK_UVK_VVK_WVK_X
VK_YVK_ZVK_NUMPAD0VK_NUMPAD1
VK_NUMPAD2VK_NUMPAD3VK_NUMPAD4VK_NUMPAD5
VK_NUMPAD6VK_NUMPAD7VK_NUMPAD8VK_NUMPAD9
VK_MULTIPLYVK_ADDVK_SEPARATORVK_SUBTRACT
VK_DECIMALVK_DIVIDEVK_F1VK_F2
VK_F3VK_F4VK_F5VK_F6
VK_F7VK_F8VK_F9VK_F10
VK_F11VK_F12VK_F13VK_F14
VK_F15VK_F16VK_F17VK_F18
VK_F19VK_F20VK_F21VK_F22
VK_F23VK_F24VK_NUM_LOCKVK_SCROLL_LOCK
VK_COMMAVK_PERIODVK_SLASHVK_BACK_QUOTE
VK_OPEN_BRACKETVK_BACK_SLASHVK_CLOSE_BRACKETVK_QUOTE
VK_HELP

显示效果:

xul7-1.png


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值