Как я могу настроить контекстное меню в Google Chrome, чтобы все меню было верхнего уровня?

#google-chrome #google-chrome-extension #contextmenu

#google-chrome #google-chrome-расширение #contextmenu

Вопрос:

Я работаю над расширением Google Chrome и настроил несколько пунктов контекстного меню, щелкнутых правой кнопкой мыши. Я вижу, что в синтаксисе добавления элемента меню есть что-то, что позволяет вам выбирать родительский идентификатор, но я не вижу ничего, что позволило бы вам выбрать все пункты меню в качестве элементов верхнего уровня.

Вот пример моего плагина с одним пунктом меню верхнего уровня, а затем несколькими пунктами подменю:

Снимок экрана 2011-10-10 в 11.51.00 вечера.png

Я бы хотел вывести их на верхний уровень, потому что я часто их использую. Это код, который у меня есть до сих пор, но я не могу понять, как поднять их все на уровень выше:

 chrome.contextMenus.create({'title': 'Send URL to Quicksilver',
                            'contexts': ['all'],
                            'onclick': sendToQuicksilver});

chrome.contextMenus.create({'title': 'Send File to Quicksilver',
                            'contexts': ['all'],
                            'onclick': sendFileToQuicksilver});


chrome.contextMenus.create({'title': 'Quick Download',
                            'contexts': ['all'],
                            'onclick': quickDownload});


chrome.contextMenus.create({'title': 'Edit in Textmate',
                            'contexts': ['all'],
                            'onclick': editInTextmate});


chrome.contextMenus.create({'title': 'Open Project in Textmate',
                            'contexts': ['all'],
                            'onclick': editProjectInTextmate});
  

Ответ №1:

Это невозможно, вам разрешено создавать только одно меню верхнего уровня для каждого расширения.

Из спецификаций:

Вы можете создать столько пунктов контекстного меню, сколько вам нужно, но если одновременно отображается более одного из вашего расширения, Google Chrome автоматически сворачивает их в одно родительское меню.

Ответ №2:

Серг прав, это невозможно с меню Chrome. Если вы хотите заменить все контекстное меню правой кнопкой мыши, это возможно:

http://davidwalsh.name/mootools-context-menu

Существует несколько других плагинов / фреймворков для замены меню.

Рассматривали ли вы возможность просто добавить строку меню на интересующие вас страницы?

http://www.hongkiat.com/blog/drop-down-menu-30-free-scripts-to-enhance-header-navigation/

У вас может быть доступ к нужным пунктам меню одним щелчком мыши.

Комментарии:

1. Спасибо! хорошие ресурсы, но я думаю, мне просто придется жить с вложенным меню, потому что я не хочу его заменять 🙂 Взгляните на это, если у вас будет такая возможность: bit.ly/nARS6K