XUL > ショートカットキーの利用

更新日 2012-05-03
広告
ショートカットキーから、アドオンを呼び出す方法を紹介します(Mozilla公式サイトを参考にしました)。
アドオンのファイルの構成は、こちらの記事とほとんど同じです。主に browserOverlay.xul が異なります。

browserOverlay.xul (その1)

ショートカットキーを利用する単純な方法は、browserOverlay.xulで、keyset要素を定義する方法です。
<?xml version="1.0"?>

<?xml-stylesheet type="text/css" href="chrome://global/skin/" ?>
<?xml-stylesheet type="text/css"
  href="chrome://globalshortcutsample/skin/browserOverlay.css" ?>

<!DOCTYPE overlay SYSTEM
  "chrome://globalshortcutsample/locale/browserOverlay.dtd">

<overlay id="globalshortcutsample-browser-overlay"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <script type="application/x-javascript"
    src="chrome://globalshortcutsample/content/browserOverlay.js" />
  
  <keyset>
    <key id="mykey" modifiers="control" key="E" oncommand="invokeAlert();"/>
  </keyset>

</overlay>
この場合、「コントロール+E」を押すと、JavaScriptのinvokeAlert関数が呼び出されます。コントロールキーじゃなくて、シフトキーやAltキーを使いたい場合は、modifiers属性の値を shift や alt にすればよいです。

browserOverlay.xul (その2)

右クリックで表示されるメニューのショートカットキーを指定する場合は、accesskey属性を定義すればよいです。
<?xml version="1.0"?>

<?xml-stylesheet type="text/css" href="chrome://global/skin/" ?>
<?xml-stylesheet type="text/css"
  href="chrome://menushortcutsample/skin/browserOverlay.css" ?>

<!DOCTYPE overlay SYSTEM
  "chrome://menushortcutsample/locale/browserOverlay.dtd">

<overlay id="menushortcutsample-browser-overlay"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <script type="application/x-javascript"
    src="chrome://menushortcutsample/content/browserOverlay.js" />
  
  <popup id="contentAreaContextMenu">
    <menuitem id="sample" label="get drag text sample" accesskey="r"
              insertafter="context-bookmarkpage" oncommand="invokeAlert();"/>
  </popup>

</overlay>
menuitem要素の中で、accesskey属性を定義しています。上の場合、右クリックした後に「R」を押せば、invokeAlert関数が呼び出されます。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system