Safari Extensionで動的にコンテクストメニューを作成する

Safari ExtensionでContext Menuを利用する場合には、一般には機能拡張ビルダーでコンテクストメニュー項目を作成しますが、今回は動的に作成してみます。

コンテクストメニューは、contextmenuイベントを取得してその時に作成します。具体的にはグローバルHTMLで

safari.application.addEventListener("contextmenu", handleContextMenu, false);
 
function handleContextMenu(event) {
    event.contextMenu.appendContextMenuItem("doSomething", "Menu Name", "do-something");
}

とします。あとはcommandイベントでevent.commandがdo-somethingの時になにがしかの処理をします。

safari.application.addEventListener("command", handleCommand, false);
function handleCommand(event) {
    if (event.command === "do-something") {
        alert("do something);
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です