2009-05-20

[Firefox 套件開發] 設立快捷鍵

在 Firefox 套件中要建立自己的快捷鍵是非常容易的,只要在 XUL 中設定需要的按鍵及事件的對應就可以了。

<?xml version="1.0"?>

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <!-- 建立快捷鍵 -->
    <keyset>
        <key id="key1"
             modifiers="control"
             key="Q"
             oncommand="alert('crtl+Q')" />

        <key id="key2"
             modifiers="control alt"
             key="C"
             oncommand="alert('crtl+alt+C')" />

        <key id="key3"
             modifiers="shift control"
             key="C"
             oncommand="alert('shift+crtl+C')" />

        <key id="key4"
             keycode="VK_F6"
             oncommand="alert('F6')"/>

        <key id="key5"
             modifiers="shift control"
             key="B"
             command="broadcaster1" />
    </keyset>

</window>


屬性
command
型態:command Id
監測內容的命令來設置編號元素。

disabled
型態:Bool(true,false)
顯示的元素是否被禁用。如果因素設置為True ,該元素被禁用。disabled 的內容通常是繪製灰色文字。如果內容是 disabled,用戶沒有回應的行動,甚至沒有收件人的重點,指揮事件不會發生。

key
型態:字符(character)
觸發鍵的字母值,必要的屬性設置。

keycode
型態:鍵盤按鍵的代碼字串
鍵盤上不是每個按鍵都有字母值,如 F1,Enter,Back...等,這個屬性可用來代替 key 的設置,去設定特殊的按鍵。
下面是常用的按鍵代碼:
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   


keytext
型態:字串
鍵盤快捷鍵標籤,這段文字將顯示在設有快捷鍵的 menuitem 中,並串接在 label 屬性後面。

modifiers
型態:組合鍵清單
快捷鍵中的組合鍵。組合鍵以空格分隔的或逗號。key 是不存在的平台上,將被分配到其他 key。
  • shift: Shift 鍵。
  • alt: Alt 鍵。在Mac 上是 Option 鍵。因為在 Mac 上文本輸入特別的文字的 Alt+Letter 的組合被預約,與其他的 modifier 聯結被使用。
  • meta: Meta 鍵。在 Mac 上是 Command 鍵。
  • control: Ctrl(Control) 鍵。
  • accel: 用戶的平台上的快捷鍵使用的鑰匙。通常成為使用的價值。
  • access: menu 和其他的要素的訪問鍵。在Windows 上面是 Alt 鍵。與要素的 accesskey 聯結被使用。
  • any:代表上述的全部,表示任意的 modifier key。

oncommand
型態:Script code
此事件處理程序被激活時,該命令要求。這是選擇一個菜單項時所發生的用戶命令或按下鍵盤快捷鍵分配給它。

參考來源:
key - MDC
keyset - MDC
firefox扩展开发(七) : 键盘快捷键

0 回應: