寻找上下文菜单更紧凑/可读的符号

时间:2018-10-03 20:22:43

标签: javascript contextmenu firefox-webextensions

我正在复制旧版Firefox插件bbCodeXtra的功能。

我想出了一个表格,其中详细列出了所有功能,其层次结构等。

使用传统的菜单系统,我将得到如下所示的菜单:

browser.menus.create({
            id: "test_clipboard",
            title: " &Test Clipboard",
            contexts: ["all"]
        }, onCreated);
browser.menus.create({
            id: "clipboard",
            title: " Check Clipboard",
            contexts: ["all"]
        }, onCreated);

这将馈入类似这样的case语句:

browser.menus.onClicked.addListener((info, tab) => {
    switch (info.menuItemId) {
        case "test_clipboard":
            browser.tabs.sendMessage(tab.id,{runwhat: "zzBBCode", ParseArg: "[b]{{selection}}[/b]"});
        break;
        case "clipboard":
            browser.tabs.sendMessage(tab.id,{runwhat: "zzBBCode", ParseArg: "[b]{{selection}}[/b]"});
        break;
    }
});

问题是,在各种选项之间(不包括来自用户的自定义标签),我有100多个菜单选项。 (您有bbCode,Vbulletin,markdown,html,xml等子菜单,以及每个子菜单下方的子菜单)

我想做的是一个这样的表,我已经在电子表格中设置了这个表(不要嘲笑我),就像这样:

| Menu ID | Menu Title | Parent ID | Contexts | Code to Execute |
| MenuID1 | MenuTitle1 | ParentID1 | Context1 | Code to Execut1 |
| MenuID2 | MenuTitle2 | ParentID2 | Context2 | Code to Execut2 |

我认为在这种情况下,以某种表格格式表示菜单结构可以简化菜单的编写和调试。

我的问题是是否有某种数组/对象/编程技巧可以使我做到这一点?

基本上,人们可以一目了然地确定所有菜单中的内容,而不是缓慢地浏览到每个菜单项以进行故障排除。

看到我的代码多么丑陋,很可能导致癌症,我认为当我或我尚未癌变的继任者尝试更新或维护它时,应该使它尽可能可读。

最终菜单结构应如下所示: Menu Structure Image

0 个答案:

没有答案