Пункты контекстного меню

Этот параметр пользовательского интерфейса добавляет один или несколько элементов в контекстное меню браузера. Это контекстное меню, доступное, когда пользователь щелкает правой кнопкой мыши веб-страницу. Вкладки также могут иметь контекстные меню, доступные через API browser.menus.

Вы могли бы использовать эту опцию, чтобы показать функции, относящиеся к конкретному браузеру или контексту веб-страницы. Например, вы можете показать функции для открытия графического редактора, когда пользователь нажимает на изображение, или предложить функцию для сохранения содержимого страницы, когда часть страницы выбрана. В меню можно добавлять простые элементы меню, элементы флажков, группы переключателей и разделители. После добавления пункта контекстного меню с помощью contextMenus.create он отображается во всех вкладках браузера, но вы можете скрыть его, удалив его с помощью contextMenus.remove .

Полный список поддерживаемых контекстов доступен в menus.ContextType и включает контексты за пределами веб-страницы, такие как элементы закладок в пользовательском интерфейсе браузера. Например, расширение «Открыть закладку на вкладке контейнера» добавляет пункт меню, который позволяет пользователю открывать URL-адрес закладки на новой вкладке контейнера:

Указание элементов контекстного меню

Вы управляете элементами контекстного меню программно, используя contextMenus код> API. Однако вам необходимо запросить разрешение contextMenus в вашем manifest.json, чтобы воспользоваться преимуществами API.

  "permissions"  : ["contextMenus"]  

Затем вы можете добавить (и обновить или удалить) элементы контекстного меню в фоновом скрипте вашего расширения. Чтобы создать пункт меню, вы указываете идентификатор, его заголовок и контекстные меню, в которых он должен отображаться:

  browser.contextMenus.create ({id: "log-selection"  , title: browser.i18n.getMessage ("contextMenuItemSelectionLogger"), context: ["selection"]}, onCreated);  

Затем ваше расширение прослушивает щелчки по элементам меню. Переданная информация о выбранном элементе, контексте, в котором произошел щелчок, и сведения о вкладке, на которой произошел щелчок, затем могут быть использованы для вызова соответствующей функции расширения.

   browser.contextMenus.onClicked.addListener (function (info, tab) {switch (info.menuItemId) {case "log-selection": console.log (info.selectionText); break; ...}})   

Иконки

Подробнее о том, как создавать значки для использования в контекстном меню, см. в разделе Иконография в документации Photon Design System.

Примеры

Репозиторий webextensions-examples на GitHub содержит два примера расширений, реализующих элементы контекстного меню:

  • menu-demo добавляет несколько элементов в контекстное меню браузера.
  • context-menu-copy-link-with-types добавляет пункт контекстного меню к ссылкам, который копирует URL-адрес ссылки в буфер обмена в виде обычного текста и форматированного HTML.
Оцените статью
Botgadget.ru
Добавить комментарий